add micro config

This commit is contained in:
Nico 2021-09-19 20:42:39 +01:00
parent 599b8acf3c
commit f07375057d
4 changed files with 104 additions and 0 deletions

View File

@ -0,0 +1,6 @@
{
"Alt-/": "lua:comment.comment",
"Ctrl-J": "lua:initlua.zettelInsert",
"CtrlUnderscore": "lua:comment.comment",
"MouseRight": "lua:initlua.gotofile"
}

View File

@ -0,0 +1,29 @@
color-link comment "grey"
color-link constant "red"
color-link identifier "cyan"
color-link statement "yellow"
color-link symbol "yellow"
color-link preproc "magenta"
color-link type "green"
color-link special "magenta"
color-link ignore "default"
color-link error ",brightred"
color-link todo ",brightyellow"
color-link indent-char "black"
color-link line-number "yellow"
color-link current-line-number "red"
color-link diff-added "green"
color-link diff-modified "yellow"
color-link diff-deleted "red"
color-link gutter-error ",red"
color-link gutter-warning "red"
#Cursor line causes readability issues. Disabled for now.
#color-link cursor-line "white,black"
color-link color-column "white"
#No extended types. (bool in C)
color-link type.extended "default"
#No bracket highlighting.
color-link symbol.brackets "default"
#Color shebangs the comment color
color-link preproc.shebang "comment"
color-link statusline "black,grey"

View File

@ -0,0 +1,65 @@
local micro = import("micro")
local config = import("micro/config")
local buf = import("micro/buffer")
local util = import("micro/util")
local path = import("path")
local time = import("time")
function gotofile(bp)
local selection = bp.Cursor.CurSelection -- cursor position
local line = bp.buf.Line(bp.buf, selection[1]["Y"]) -- get the current line
local path_start, path_end
-- TODO add other delimiters
-- search forward from cursor position for a delimiter
-- store it to find the end of the path
for v = selection[1]["X"], #line do
local r = util.RuneAt(line, v)
if r == ')' or r == "}" or r == "]" or r == " " then
path_end = v
break
end
end
-- do the same, looking backwards, for the start of the path
for v = selection[1]["X"],0, -1 do
local r = util.RuneAt(line,v)
if r == '(' or r == "{" or r == "[" or r == " " then
path_start = v+2
break
end
end
-- slice up the path and go to that file
if path_start ~= nil and path_end ~= nil then
-- get the path from the buffer
p = string.sub(line, path_start, path_end)
-- get the path relative to current file if it's relative
if not path.IsAbs(p) then
p = path.Join(path.Dir(bp.buf.Path), p)
end
-- open in a split
-- TODO placement that's better than just splitting?
bp.HSplitCmd(bp, {p})
return false
end
end
function zettelInsert(bp)
local t = time.Now() -- current unix time
local ut = t.Unix(t)
local cursor = bp.Cursor.Loc
local cursorLoc = buf.Loc(cursor["X"], cursor["Y"])
local newFilePath = ut .. ".md"
local link = "[[" .. newFilePath .. "]]"
bp.Buf:Replace(cursorLoc, cursorLoc, link ) -- insert link at cursor position
local newBuffer = buf.NewBuffer("# " .. ut .. " - ", path.Join(path.Dir(bp.buf.Path), newFilePath))
bp.HSplitBuf(bp, newBuffer)
end
function init()
config.MakeCommand("gotofile", gotofile, config.NoComplete)
config.MakeCommand("zi", zettelInsert, config.NoComplete)
config.TryBindKey("MouseRight", "lua:initlua.gotofile", true)
end

View File

@ -0,0 +1,4 @@
{
"colorscheme": "nico",
"softwrap": true
}