summaryrefslogtreecommitdiff
path: root/after
diff options
context:
space:
mode:
Diffstat (limited to 'after')
-rw-r--r--after/ftplugin/lua.vim9
-rw-r--r--after/ftplugin/mail.vim6
-rw-r--r--after/ftplugin/markdown.lua14
-rw-r--r--after/ftplugin/python.lua29
-rw-r--r--after/ftplugin/tex.lua19
-rw-r--r--after/lsp/emmylua_ls.lua29
-rw-r--r--after/lsp/qmlls.lua4
-rw-r--r--after/lsp/rust_analyzer.lua0
8 files changed, 110 insertions, 0 deletions
diff --git a/after/ftplugin/lua.vim b/after/ftplugin/lua.vim
new file mode 100644
index 0000000..6d9a620
--- /dev/null
+++ b/after/ftplugin/lua.vim
@@ -0,0 +1,9 @@
+setlocal includeexpr=substitute(v:fname,'\\.','/','g').'.lua'
+setlocal comments-=:-- comments+=:---,:--
+setlocal keywordprg=:help
+
+inoreabbrev <buffer> lo local
+inoreabbrev <buffer> lf local function()<left><left>
+inoreabbrev <buffer> fu function() end<left><left><left><left>
+
+nnoremap <buffer> K <Cmd>lua vim.lsp.buf.hover()<CR>
diff --git a/after/ftplugin/mail.vim b/after/ftplugin/mail.vim
new file mode 100644
index 0000000..4b76a14
--- /dev/null
+++ b/after/ftplugin/mail.vim
@@ -0,0 +1,6 @@
+set spell
+set formatoptions+=wq
+
+setlocal tw=72 et cc=73 list
+
+map <buffer> g= <Esc>vipgq
diff --git a/after/ftplugin/markdown.lua b/after/ftplugin/markdown.lua
new file mode 100644
index 0000000..fe9be18
--- /dev/null
+++ b/after/ftplugin/markdown.lua
@@ -0,0 +1,14 @@
+local function toggle_tick(buf, lnum, line, to)
+ local beg, tick, rest = line:match("^(%s*)- %[([x ])%](.*)")
+end
+
+vim.keymap.set("n", "<CR>", function()
+ local curline = vim.fn.getline(".")
+ local lnum = vim.fn.getpos(".")[2]
+ local beg, tick, rest = curline:match("^(%s*)- %[([x ])%](.*)")
+ if beg == nil then return end
+
+ local new_tick = (tick == " " and "x" or " ")
+ local new_line = beg .. "- [" .. new_tick .. "]" .. rest
+ vim.api.nvim_buf_set_lines(0, lnum - 1, lnum, false, { new_line })
+end, { buffer = true })
diff --git a/after/ftplugin/python.lua b/after/ftplugin/python.lua
new file mode 100644
index 0000000..2f1a564
--- /dev/null
+++ b/after/ftplugin/python.lua
@@ -0,0 +1,29 @@
+local function keyword_help(kw)
+ local buf = vim.api.nvim_create_buf(false, true)
+ local win = vim.api.nvim_open_win(buf, true, {
+ anchor = "SE",
+ split = "below",
+ height = 20,
+ })
+ local obj = vim.system({ "pydoc-markdown", "-m", kw }):wait() -- "--render-toc"??
+ vim.api.nvim_buf_set_lines(buf, -1, -1, false, vim.split(obj.stdout, "\n"))
+ vim.bo[buf].filetype = "markdown"
+ vim.bo[buf].swapfile = false
+end
+
+vim.api.nvim_create_user_command("PyDoc", function(params)
+ if #params.fargs > 0 then
+ keyword_help(params.fargs[1])
+ end
+end, {
+ bar = true,
+ range = true,
+ addr = "other",
+ nargs = "*",
+ complete = function(...)
+ vim.print("completion request: " .. vim.inspect(...))
+ return nil
+ end,
+})
+
+vim.cmd([[ setlocal keywordprg=:PyDoc ]])
diff --git a/after/ftplugin/tex.lua b/after/ftplugin/tex.lua
new file mode 100644
index 0000000..963ab7f
--- /dev/null
+++ b/after/ftplugin/tex.lua
@@ -0,0 +1,19 @@
+vim.cmd([[setlocal shiftwidth=2 tabstop=2]])
+
+vim.fn.call("vimtex#imaps#add_map", {
+ {
+ lhs = "++",
+ rhs = "\\item ",
+ leader = "",
+ wrapper = "vimtex#imaps#wrap_environment",
+ context = { "itemize", "enumerate", "description" },
+ },
+})
+
+vim.fn.call("vimtex#imaps#add_map", {
+ {
+ lhs = "e",
+ rhs = "\\eps",
+ wrapper = "vimtex#imaps#wrap_math",
+ },
+})
diff --git a/after/lsp/emmylua_ls.lua b/after/lsp/emmylua_ls.lua
new file mode 100644
index 0000000..4e0cd88
--- /dev/null
+++ b/after/lsp/emmylua_ls.lua
@@ -0,0 +1,29 @@
+return {
+ cmd = { vim.env.XDG_DATA_HOME .. "/cargo/bin/emmylua_ls" },
+ filetypes = { "lua" },
+ root_markers = {
+ ".emmyrc.json",
+ },
+ workspace_required = false,
+ on_init = function(client)
+ if client.workspace_folders then
+ local path = client.workspace_folders[1].name
+ if
+ path ~= vim.fn.stdpath("config")
+ and (
+ vim.uv.fs_stat(path .. "/.luarc.json")
+ or vim.uv.fs_stat(path .. "/.luarc.jsonc")
+ or vim.uv.fs_stat(path .. "/.emmyrc.jsonc")
+ )
+ then
+ return
+ end
+ end
+
+ client.config.settings.Lua.workspace =
+ vim.tbl_deep_extend("force", client.config.settings.Lua.workspace, {
+ library = vim.api.nvim_get_runtime_file("", true),
+ })
+ end,
+ settings = { Lua = { workspace = {} } },
+}
diff --git a/after/lsp/qmlls.lua b/after/lsp/qmlls.lua
new file mode 100644
index 0000000..46c4859
--- /dev/null
+++ b/after/lsp/qmlls.lua
@@ -0,0 +1,4 @@
+return {
+ cmd = { "qmlls6" },
+ root_markers = { "shell.qml" },
+}
diff --git a/after/lsp/rust_analyzer.lua b/after/lsp/rust_analyzer.lua
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/after/lsp/rust_analyzer.lua