diff options
-rw-r--r-- | README.md | 2 | ||||
-rw-r--r-- | plugins/closeconfirmx.lua | 54 | ||||
-rw-r--r-- | plugins/language_csharp.lua | 10 |
3 files changed, 65 insertions, 1 deletions
@@ -16,6 +16,7 @@ Plugin | Description [`black`](https://git.sr.ht/~tmpod/black-lite)* | Integrates the [black](https://github.com/psf/black) Python formatter with lite [`bracketmatch`](plugins/bracketmatch.lua?raw=1) | Underlines matching pair for bracket under the caret *([screenshot](https://user-images.githubusercontent.com/3920290/80132745-0c863f00-8594-11ea-8875-c455c6fd7eae.png))* [`centerdoc`](plugins/centerdoc.lua?raw=1) | Centers document's content on the screen *([screenshot](https://user-images.githubusercontent.com/3920290/82127896-bf6e4500-97ae-11ea-97fc-ba9a552bc9a4.png))* +[`closeconfirmx`](plugins/closeconfirmx.lua?raw=1) | Replaces a system close confirmation dialog with a command view, like for individual files *([screenshot](https://user-images.githubusercontent.com/1689801/107596774-afa76280-6c53-11eb-80ab-22e73058c097.png))* [`colorpreview`](plugins/colorpreview.lua?raw=1) | Underlays color values (eg. `#ff00ff` or `rgb(255, 0, 255)`) with their resultant color. *([screenshot](https://user-images.githubusercontent.com/3920290/80743752-731bd780-8b15-11ea-97d3-847db927c5dc.png))* [`console`](https://github.com/rxi/console)* | A console for running external commands and capturing their output *([gif](https://user-images.githubusercontent.com/3920290/81343656-49325a00-90ad-11ea-8647-ff39d8f1d730.gif))* [`copyfilelocation`](plugins/copyfilelocation.lua?raw=1) | Copy file location to clipboard @@ -86,6 +87,7 @@ Plugin | Description [`spellcheck`](plugins/spellcheck.lua?raw=1) | Underlines misspelt words *([screenshot](https://user-images.githubusercontent.com/3920290/79923973-9caa7400-842e-11ea-85d4-7a196a91ca50.png))* *— note: on Windows a [`words.txt`](https://github.com/dwyl/english-words/blob/master/words.txt) dictionary file must be placed beside the exe* [`tabnumbers`](plugins/tabnumbers.lua?raw=1) | Displays tab numbers from 1–9 next to their names *([screenshot](https://user-images.githubusercontent.com/16415678/101285362-007a8500-37e5-11eb-869b-c10eb9d9d902.png)) [`theme16`](https://github.com/monolifed/theme16)* | Theme manager with base16 themes +[`themescheduler`](https://github.com/BenStigsen/lite-config/blob/main/plugins/themescheduler.lua?raw=1) | Schedule themes to be used at certain times [`titleize`](plugins/titleize.lua?raw=1) | Titleizes selected string (`hello world` => `Hello World`) [`todotreeview`](https://github.com/drmargarido/TodoTreeView)* | Todo tree viewer for annotations in code like `TODO`, `BUG`, `FIX`, `IMPROVEMENT` [`togglesnakecamel`](plugins/togglesnakecamel.lua?raw=1) | Toggles symbols between `snake_case` and `camelCase` diff --git a/plugins/closeconfirmx.lua b/plugins/closeconfirmx.lua new file mode 100644 index 0000000..805fe3b --- /dev/null +++ b/plugins/closeconfirmx.lua @@ -0,0 +1,54 @@ +-- CloseConfirmX plugin for lite text editor +-- implementation by chekoopa + +local core = require "core" +local config = require "core.config" + +config.closeconfirmx_use_legacy = false +config.closeconfirmx_use_short_name = true + +local legacy_confirm = core.confirm_close_all + +local function commandful_confirm() + local dirty_count = 0 + local dirty_name + for _, doc in ipairs(core.docs) do + if doc:is_dirty() then + dirty_count = dirty_count + 1 + dirty_name = doc:get_name() + end + end + if dirty_count > 0 then + local text + if dirty_count == 1 then + if config.closeconfirmx_use_short_name then + dirty_name = dirty_name:match("[^/%\\]*$") + end + text = string.format("Unsaved changes in \"%s\"; Confirm Exit", dirty_name) + else + text = string.format("Unsaved changes in %d docs; Confirm Exit", dirty_count) + end + core.command_view:enter(text, function(_, item) + if item.text:match("^[cC]") then + core.quit(true) + end + end, function(text) + local items = {} + if not text:find("^[^sS]") then table.insert(items, "Stay here") end + if not text:find("^[^cC]") then table.insert(items, "Close Without Saving") end + return items + end) + -- as we delegate a choice inside the callback, + return false + end + return true +end + +function core.confirm_close_all() + if config.closeconfirmx_use_legacy then + return legacy_confirm() + else + return commandful_confirm() + end +end + diff --git a/plugins/language_csharp.lua b/plugins/language_csharp.lua index 5e790e3..c40009c 100644 --- a/plugins/language_csharp.lua +++ b/plugins/language_csharp.lua @@ -21,9 +21,10 @@ syntax.add { { pattern = "[%a_][%w_]*", type = "symbol" }, }, symbols = { - -- keywords + -- keywords and contextual keywords ["abstract"] = "keyword", ["as"] = "keyword", + ["add"] = "keyword", ["await"] = "keyword", ["base"] = "keyword", ["break"] = "keyword", @@ -31,6 +32,7 @@ syntax.add { ["catch"] = "keyword", ["checked"] = "keyword", ["class"] = "keyword", + ["record"] = "keyword", ["const"] = "keyword", ["continue"] = "keyword", ["default"] = "keyword", @@ -59,9 +61,12 @@ syntax.add { ["operator"] = "keyword", ["out"] = "keyword", ["override"] = "keyword", + ["remove"] = "keyword", ["params"] = "keyword", + ["partial"] = "keyword", ["private"] = "keyword", ["protected"] = "keyword", + ["dynamic"] = "keyword", ["public"] = "keyword", ["readonly"] = "keyword", ["ref"] = "keyword", @@ -81,10 +86,13 @@ syntax.add { ["unsafe"] = "keyword", ["using"] = "keyword", ["var"] = "keyword", + ["value"] = "keyword", + ["global"] = "keyword", ["virtual"] = "keyword", ["void"] = "keyword", ["volatile"] = "keyword", ["where"] = "keyword", + ["when"] = "keyword", ["while"] = "keyword", ["yield"] = "keyword", -- types |