aboutsummaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
authorFrancesco Abbate <francesco.bbt@gmail.com>2021-03-13 13:35:13 +0100
committerFrancesco Abbate <francesco.bbt@gmail.com>2021-03-13 13:35:13 +0100
commit355954495eb9398352f7044c1661d8758a32ff73 (patch)
treefbe9209b149b91cc6ea5eb9b0b15f3116a9b1b78 /plugins
parentd3d1df77289cc0fca3d70bba6d64d6be064413db (diff)
parentedf05b25dd6384733aa94dfb7ecb9b176e70975d (diff)
downloadlite-xl-plugins-355954495eb9398352f7044c1661d8758a32ff73.tar.gz
lite-xl-plugins-355954495eb9398352f7044c1661d8758a32ff73.zip
Merge remote-tracking branch 'rxi/master'
Diffstat (limited to 'plugins')
-rw-r--r--plugins/closeconfirmx.lua54
-rw-r--r--plugins/language_csharp.lua10
2 files changed, 63 insertions, 1 deletions
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