mirror of
https://github.com/zyedidia/micro.git
synced 2025-06-18 23:05:40 -04:00
Minor fix for comment plugin and migrating to use "comment.type" option
Fixing comment plugin not using user settings when overriding default setting, Migrating comment plugin to use "comment.type" option instead
This commit is contained in:
parent
cc195b6a96
commit
14ae8e394e
@ -3,6 +3,7 @@ VERSION = "1.0.0"
|
|||||||
local util = import("micro/util")
|
local util = import("micro/util")
|
||||||
local config = import("micro/config")
|
local config = import("micro/config")
|
||||||
local buffer = import("micro/buffer")
|
local buffer = import("micro/buffer")
|
||||||
|
local micro = import("micro")
|
||||||
|
|
||||||
local ft = {}
|
local ft = {}
|
||||||
|
|
||||||
@ -61,17 +62,21 @@ ft["zig"] = "// %s"
|
|||||||
ft["zscript"] = "// %s"
|
ft["zscript"] = "// %s"
|
||||||
ft["zsh"] = "# %s"
|
ft["zsh"] = "# %s"
|
||||||
|
|
||||||
local last_ft
|
|
||||||
|
|
||||||
function updateCommentType(buf)
|
function updateCommentType(buf)
|
||||||
if buf.Settings["commenttype"] == nil or (last_ft ~= buf.Settings["filetype"] and last_ft ~= nil) then
|
-- NOTE: Using DoSetOptionNative to avoid LocalSettings[option] = true
|
||||||
if ft[buf.Settings["filetype"]] ~= nil then
|
-- so that "comment.type" can be reset by a "filetype" change to default.
|
||||||
buf:SetOptionNative("commenttype", ft[buf.Settings["filetype"]])
|
if (buf.Settings["comment.type"] == "") then
|
||||||
|
-- NOTE: This won't get triggered if a filetype is change via `setlocal filetype`
|
||||||
|
-- since it is not registered with `RegisterGlobalOption()``
|
||||||
|
if buf.Settings["commenttype"] ~= nil then
|
||||||
|
buf:DoSetOptionNative("comment.type", buf.Settings["commenttype"])
|
||||||
else
|
else
|
||||||
buf:SetOptionNative("commenttype", "# %s")
|
if (ft[buf.Settings["filetype"]] ~= nil) then
|
||||||
|
buf:DoSetOptionNative("comment.type", ft[buf.Settings["filetype"]])
|
||||||
|
else
|
||||||
|
buf:DoSetOptionNative("comment.type", "# %s")
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
last_ft = buf.Settings["filetype"]
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -88,7 +93,7 @@ function commentLine(bp, lineN, indentLen)
|
|||||||
updateCommentType(bp.Buf)
|
updateCommentType(bp.Buf)
|
||||||
|
|
||||||
local line = bp.Buf:Line(lineN)
|
local line = bp.Buf:Line(lineN)
|
||||||
local commentType = bp.Buf.Settings["commenttype"]
|
local commentType = bp.Buf.Settings["comment.type"]
|
||||||
local sel = -bp.Cursor.CurSelection
|
local sel = -bp.Cursor.CurSelection
|
||||||
local curpos = -bp.Cursor.Loc
|
local curpos = -bp.Cursor.Loc
|
||||||
local index = string.find(commentType, "%%s") - 1
|
local index = string.find(commentType, "%%s") - 1
|
||||||
@ -114,7 +119,7 @@ function uncommentLine(bp, lineN, commentRegex)
|
|||||||
updateCommentType(bp.Buf)
|
updateCommentType(bp.Buf)
|
||||||
|
|
||||||
local line = bp.Buf:Line(lineN)
|
local line = bp.Buf:Line(lineN)
|
||||||
local commentType = bp.Buf.Settings["commenttype"]
|
local commentType = bp.Buf.Settings["comment.type"]
|
||||||
local sel = -bp.Cursor.CurSelection
|
local sel = -bp.Cursor.CurSelection
|
||||||
local curpos = -bp.Cursor.Loc
|
local curpos = -bp.Cursor.Loc
|
||||||
local index = string.find(commentType, "%%s") - 1
|
local index = string.find(commentType, "%%s") - 1
|
||||||
@ -178,7 +183,7 @@ end
|
|||||||
function comment(bp, args)
|
function comment(bp, args)
|
||||||
updateCommentType(bp.Buf)
|
updateCommentType(bp.Buf)
|
||||||
|
|
||||||
local commentType = bp.Buf.Settings["commenttype"]
|
local commentType = bp.Buf.Settings["comment.type"]
|
||||||
local commentRegex = "^%s*" .. commentType:gsub("%%","%%%%"):gsub("%$","%$"):gsub("%)","%)"):gsub("%(","%("):gsub("%?","%?"):gsub("%*", "%*"):gsub("%-", "%-"):gsub("%.", "%."):gsub("%+", "%+"):gsub("%]", "%]"):gsub("%[", "%["):gsub("%%%%s", "(.*)")
|
local commentRegex = "^%s*" .. commentType:gsub("%%","%%%%"):gsub("%$","%$"):gsub("%)","%)"):gsub("%(","%("):gsub("%?","%?"):gsub("%*", "%*"):gsub("%-", "%-"):gsub("%.", "%."):gsub("%+", "%+"):gsub("%]", "%]"):gsub("%[", "%["):gsub("%%%%s", "(.*)")
|
||||||
|
|
||||||
if bp.Cursor:HasSelection() then
|
if bp.Cursor:HasSelection() then
|
||||||
@ -204,6 +209,10 @@ function string.starts(String,Start)
|
|||||||
return string.sub(String,1,string.len(Start))==Start
|
return string.sub(String,1,string.len(Start))==Start
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function preinit()
|
||||||
|
config.RegisterCommonOption("comment", "type", "")
|
||||||
|
end
|
||||||
|
|
||||||
function init()
|
function init()
|
||||||
config.MakeCommand("comment", comment, config.NoComplete)
|
config.MakeCommand("comment", comment, config.NoComplete)
|
||||||
config.TryBindKey("Alt-/", "lua:comment.comment", false)
|
config.TryBindKey("Alt-/", "lua:comment.comment", false)
|
||||||
|
@ -80,10 +80,10 @@ but it is only available for certain filetypes:
|
|||||||
* zsh: `# %s`
|
* zsh: `# %s`
|
||||||
|
|
||||||
If your filetype is not available here, you can simply modify
|
If your filetype is not available here, you can simply modify
|
||||||
the `commenttype` option:
|
the `comment.type` option:
|
||||||
|
|
||||||
```
|
```
|
||||||
set commenttype "/* %s */"
|
set comment.type "/* %s */"
|
||||||
```
|
```
|
||||||
|
|
||||||
Or in your `settings.json`:
|
Or in your `settings.json`:
|
||||||
@ -91,7 +91,12 @@ Or in your `settings.json`:
|
|||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
"*.c": {
|
"*.c": {
|
||||||
"commenttype": "/* %s */"
|
"comment.type": "/* %s */"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
`commenttype` (without the dot) is the legacy option that is
|
||||||
|
superseded by `comment.type`. `commenttype` is still supported
|
||||||
|
but will get deprecated in the future.
|
||||||
|
**Use `comment.type` instead.**
|
||||||
|
Loading…
Reference in New Issue
Block a user