diff options
-rw-r--r-- | README.md | 3 | ||||
-rw-r--r-- | plugins/lfautoinsert.lua | 4 | ||||
-rw-r--r-- | plugins/openfilelocation.lua | 28 | ||||
-rw-r--r-- | plugins/openselected.lua | 26 |
4 files changed, 58 insertions, 3 deletions
@@ -38,6 +38,8 @@ Plugin | Description [`lineguide`](plugins/lineguide.lua?raw=1) | Displays a line-guide at the line limit offset *([screenshot](https://user-images.githubusercontent.com/3920290/81476159-2cf70000-9208-11ea-928b-9dae3884c477.png))* [`linter`](https://github.com/drmargarido/linters)* | Linters for multiple languages [`macmodkeys`](plugins/macmodkeys.lua?raw=1) | Remaps mac modkeys `command/option` to `ctrl/alt` +[`openfilelocation`](plugins/openfilelocation.lua?raw=1) | Opens the parent directory of the current file in the file manager +[`openselected`](plugins/openselected.lua?raw=1) | Opens the selected filename or url [`selectionhighlight`](plugins/selectionhighlight.lua?raw=1) | Highlights regions of code that match the current selection *([screenshot](https://user-images.githubusercontent.com/3920290/80710883-5f597c80-8ae7-11ea-97f0-76dfacc08439.png))* [`sort`](plugins/sort.lua?raw=1) | Sorts selected lines alphabetically [`spellcheck`](plugins/spellcheck.lua?raw=1) | Underlines misspelt words *([screenshot](https://user-images.githubusercontent.com/3920290/79923973-9caa7400-842e-11ea-85d4-7a196a91ca50.png))* @@ -47,4 +49,3 @@ Plugin | Description [`togglesnakecamel`](plugins/togglesnakecamel.lua?raw=1) | Toggles symbols between `snake_case` and `camelCase` [`unboundedscroll`](plugins/unboundedscroll.lua?raw=1) | Allows scrolling outside the bounds of a document - diff --git a/plugins/lfautoinsert.lua b/plugins/lfautoinsert.lua index 10b418f..e395eac 100644 --- a/plugins/lfautoinsert.lua +++ b/plugins/lfautoinsert.lua @@ -10,8 +10,8 @@ config.autoinsert_map = { ["%[%[%s*\n"] = "]]", ["=%s*\n"] = false, [":%s*\n"] = false, - ["^#if%s*\n"] = "#endif", - ["^#else%s*\n"] = "#endif", + ["^#if.*\n"] = "#endif", + ["^#else.*\n"] = "#endif", ["%f[%w]do%s*\n"] = "end", ["%f[%w]then%s*\n"] = "end", ["%f[%w]else%s*\n"] = "end", diff --git a/plugins/openfilelocation.lua b/plugins/openfilelocation.lua new file mode 100644 index 0000000..e57b740 --- /dev/null +++ b/plugins/openfilelocation.lua @@ -0,0 +1,28 @@ +local core = require "core" +local command = require "core.command" +local config = require "core.config" + + +if PLATFORM == "Windows" then + config.filemanager = "explorer" +else + config.filemanager = "xdg-open" +end + + +command.add("core.docview", { + ["open-file-location:open-file-location"] = function() + local doc = core.active_view.doc + if not doc.filename then + core.error "Cannot open location of unsaved doc" + return + end + local folder_name = doc.filename:match("^(.-)[^/\\]*$") + core.log("Opening \"%s\"", folder_name) + if PLATFORM == "Windows" then + os.execute(string.format("start %s %s", config.filemanager, folder_name)) + else + os.execute(string.format("%s %q", config.filemanager, folder_name)) + end + end +}) diff --git a/plugins/openselected.lua b/plugins/openselected.lua new file mode 100644 index 0000000..5fadbec --- /dev/null +++ b/plugins/openselected.lua @@ -0,0 +1,26 @@ +local core = require "core" +local command = require "core.command" +local keymap = require "core.keymap" + + +command.add("core.docview", { + ["open-selected:open-selected"] = function() + local doc = core.active_view.doc + if not doc:has_selection() then + core.error("No text selected") + return + end + + local text = doc:get_text(doc:get_selection()) + core.log("Opening \"%s\"...", text) + + if PLATFORM == "Windows" then + os.execute(string.format("start explorer %s", text)) + else + os.execute(string.format("xdg-open %q &", text)) + end + end, +}) + + +keymap.add { ["ctrl+shift+o"] = "open-selected:open-selected" } |