summary refs log tree commit diff
path: root/.vim/lua/conf
diff options
context:
space:
mode:
Diffstat (limited to '.vim/lua/conf')
-rw-r--r--.vim/lua/conf/colors.lua9
-rw-r--r--.vim/lua/conf/diagnostic.lua17
-rw-r--r--.vim/lua/conf/lsp.lua51
-rw-r--r--.vim/lua/conf/telescope.lua75
-rw-r--r--.vim/lua/conf/treesitter.lua21
5 files changed, 173 insertions, 0 deletions
diff --git a/.vim/lua/conf/colors.lua b/.vim/lua/conf/colors.lua
new file mode 100644
index 0000000..65d1fb1
--- /dev/null
+++ b/.vim/lua/conf/colors.lua
@@ -0,0 +1,9 @@
+
+local lush = require('lush')
+local hsl = lush.hsl
+
+return lush(function()
+	return {
+		Normal { bg = hsl}
+	}
+end)
diff --git a/.vim/lua/conf/diagnostic.lua b/.vim/lua/conf/diagnostic.lua
new file mode 100644
index 0000000..4fd5047
--- /dev/null
+++ b/.vim/lua/conf/diagnostic.lua
@@ -0,0 +1,17 @@
+
+vim.g.diagnostic_enable_virtual_text = 1
+vim.g.diagnostic_trimmed_virtual_text = '40'
+vim.g.diagnostic_insert_delay = 1
+vim.api.nvim_command('nnoremap <silent> c[ <cmd>PrevDiagnosticCycle<cr>')
+vim.api.nvim_command('nnoremap <silent> c] <cmd>NextDiagnosticCycle<cr>')
+
+
+vim.fn.sign_define("LspDiagnosticsErrorSign", {text="✘", texthl="LspDiagnosticsError"})
+vim.fn.sign_define("LspDiagnosticsWarningSign", {text="‼", texthl="LspDiagnosticsWarning"})
+vim.fn.sign_define("LspDiagnosticsInformationSign", {text="i", texthl="LspDiagnosticsInformation"})
+vim.fn.sign_define("LspDiagnosticsHintSign", {text="☛",texthl="LspDiagnosticsHint"})
+
+vim.api.nvim_command('highlight link LspDiagnosticsError Error')
+vim.api.nvim_command('highlight link LspDiagnosticsWarning WarningMsg')
+vim.api.nvim_command('highlight link LspDiagnosticsInformation Todo')
+vim.api.nvim_command('highlight link LspDiagnosticsHint Question')
diff --git a/.vim/lua/conf/lsp.lua b/.vim/lua/conf/lsp.lua
new file mode 100644
index 0000000..4249de5
--- /dev/null
+++ b/.vim/lua/conf/lsp.lua
@@ -0,0 +1,51 @@
+-- lsp config
+
+local lsp     = require 'lspconfig'
+local util    = require 'lspconfig.util'
+
+local function my_attach(client)
+	-- attach completion
+	require 'completion'.on_attach(client)
+
+	-- do lsp mappings
+	vim.fn.nvim_buf_set_keymap(0, 'n', 'K', '<cmd>lua vim.lsp.buf.hover()<cr>',
+		{noremap=true, silent=true})
+	vim.fn.nvim_buf_set_keymap(0, 'n', '<c-]>', '<cmd>lua vim.lsp.buf.definition()<cr>',
+		{noremap=true, silent=true})
+	vim.fn.nvim_buf_set_keymap(0, 'n', 'grr', '<cmd>lua vim.lsp.buf.rename()<cr>',
+		{noremap=true, silent=true})
+	vim.fn.nvim_buf_set_keymap(0, 'i', '<c-h>', '<cmd>lua vim.lsp.buf.signature_help()<cr>',
+		{noremap=true, silent=true})
+
+	-- nnoremap <silent> gD <cmd> lua vim.lsp.buf.declaration()<CR>
+	-- nnoremap <silent> gd <cmd> lua vim.lsp.buf.definition()<CR>
+	-- nnoremap <silent> gT <cmd> lua vim.lsp.buf.type_definition()<CR>
+	-- nnoremap <silent> gI <cmd> lua vim.lsp.buf.implementation()<CR>
+	-- nnoremap <silent> gr <cmd> lua vim.lsp.buf.references()<CR>
+	-- nnoremap <silent> g0 <cmd> lua vim.lsp.buf.document_symbol()<CR>
+	-- nnoremap <silent> gW <cmd> lua vim.lsp.buf.workspace_symbol()<CR>
+	-- nnoremap <silent> ;h <cmd> lua vim.lsp.buf.hover()<CR>
+	-- nnoremap <silent> ;s <cmd> lua vim.lsp.buf.signature_help()<CR>
+end
+
+-- lsp.ccls.setup{
+-- 	on_attach = my_attach,
+-- }
+
+lsp.gopls.setup{
+	on_attach = my_attach,
+	root_dir = util.root_pattern('go.mod', '.git'),
+	-- NOTE: this is done to avoid the gopls warning about being outside gopath
+	-- message_level = vim.lsp.protocol.MessageType.Error,
+}
+
+lsp.sumneko_lua.setup{
+	cmd = { 'lua-language-server' };
+	on_attach = my_attach;
+}
+
+lsp.rust_analyzer.setup{
+	cmd = { 'env', 'CARGO_TARGET_DIR=/tmp', 'rust-analyzer' },
+	on_attach = my_attach,
+
+}
diff --git a/.vim/lua/conf/telescope.lua b/.vim/lua/conf/telescope.lua
new file mode 100644
index 0000000..e1145c2
--- /dev/null
+++ b/.vim/lua/conf/telescope.lua
@@ -0,0 +1,75 @@
+-- config for telescope.nvim
+local telescope  = require('telescope')
+local finders    = require('telescope.finders')
+local pickers    = require('telescope.pickers')
+local previewers = require('telescope.previewers')
+local make_entry = require('telescope.make_entry')
+local sorters    = require('telescope.sorters')
+
+telescope.setup{
+	defaults = {
+		borderchars = {'─', '│', '─', '│', '┌', '┐', '┘', '└'},
+		winblend = 3,
+		layout_strategy = 'flex',
+	}
+}
+
+vim.api.nvim_set_keymap('n', ';f', "<cmd>lua require'telescope.builtin'.find_files{}<cr>",
+	{noremap=true, silent=true})
+vim.api.nvim_set_keymap('n', ';g', "<cmd>lua require'telescope.builtin'.live_grep{}<cr>",
+	{noremap=true, silent=true})
+vim.api.nvim_set_keymap('n', ';r', "<cmd>lua require'telescope.builtin'.lsp_references{}<cr>",
+	{noremap=true, silent=true})
+vim.api.nvim_set_keymap('n', ';q', "<cmd>lua require'telescope.builtin'.quickfix{}<cr>",
+	{noremap=true, silent=true})
+vim.api.nvim_set_keymap('n', ';l', "<cmd>lua require'telescope.builtin'.loclist{}<cr>",
+	{noremap=true, silent=true})
+vim.api.nvim_set_keymap('n', ';b', "<cmd>lua require'telescope.builtin'.buffers{}<cr>",
+	{noremap=true, silent=true})
+-- vim.api.nvim_set_keymap('n', ';h', "<cmd>lua require'conf.telescope'.home{}<cr>",
+-- 	{noremap=true, silent=true})
+vim.api.nvim_set_keymap('n', ';w', "<cmd>lua require'conf.telescope'.wiki{}<cr>",
+	{noremap=true, silent=true})
+
+local M = {}
+M.fzf = function(opts)
+	opts = opts or {}
+	if opts.cwd then
+		opts.cwd = vim.fn.expand(opts.cwd)
+	end
+	local cmd = {'fd', '--type', 'f', '--no-ignore', '--absolute-path'}
+	if opts.extensions then
+		for _, ext in ipairs(opts.extensions) do
+			table.insert(cmd, '--extension')
+			table.insert(cmd, ext)
+		end
+	end
+	if opts.exclude then
+		for _, excl in ipairs(opts.exclude) do
+			table.insert(cmd, '--exclude')
+			table.insert(cmd, excl)
+		end
+	end
+	pickers.new(opts, {
+		prompt = opts.prompt or "FZF",
+		finder = finders.new_oneshot_job(cmd, opts),
+		previewer = previewers.cat.new(opts),
+		sorter = sorters.get_fuzzy_file(),
+	}):find()
+end
+
+M.wiki = function()
+	return M.fzf {
+		prompt = 'WIKI',
+		cwd = '~/wiki',
+		extensions = {'md'},
+		exclude = {'_templates/*'}
+	}
+end
+-- M.home = function()
+-- 	return M.fzf {
+-- 		prompt = 'HOME',
+-- 		cwd = '~',
+-- 	}
+-- end
+return M
diff --git a/.vim/lua/conf/treesitter.lua b/.vim/lua/conf/treesitter.lua
new file mode 100644
index 0000000..79763b8
--- /dev/null
+++ b/.vim/lua/conf/treesitter.lua
@@ -0,0 +1,21 @@
+
+require 'nvim-treesitter.configs'.setup {
+	ensure_installed = { "c", "c_sharp", "lua", "bash" },
+	highlight = {
+		enable = false,
+	},
+	refactor = {
+		navigation = {
+			enable = true,
+			keymaps = {
+				goto_definition = "<c-]>",
+			},
+		},
+		smart_rename = {
+			enable = true,
+			keymaps = {
+				smart_rename = "grr",
+			},
+		},
+	},
+}