Commit 42ddd058 authored by Tim van Deurzen's avatar Tim van Deurzen

Latest updates.

parent a920a0b6
......@@ -72,7 +72,7 @@
org-agenda-skip-deadline-if-done t
org-agenda-skip-scheduled-if-done t
org-clock-rounding-minutes 5
org-clock-rounding-minutes 15
org-clock-persist t
org-clock-in-resume t
org-clock-persist-query-resume nil
......
......@@ -9,7 +9,7 @@
;; To install SOME-PACKAGE from MELPA, ELPA or emacsmirror:
;(package! some-package)
(package! evil-colemak-basics)
(package! evil-colemak-basics :recipe (:branch "main"))
(package! org-super-agenda)
......
......@@ -2,6 +2,12 @@
email = tim@kompiler.org
name = Tim van Deurzen
[includeIf "gitdir:~/src/blockport/"]
path = ~/src/blockport/.gitconfig_bux
[includeIf "gitdir:~/src/bux/"]
path = ~/src/bux/.gitconfig_bux
[alias]
co = checkout
br = branch
......@@ -15,12 +21,15 @@
[url "ssh://git@gitlab.dopey.blockport.io"]
insteadOf = https://gitlab.dopey.blockport.io
[url "ssh://git@github.com-vdeurzen-bux/buxapp"]
insteadOf = https://github.com/buxapp
[core]
editor = nvim
pager = delta
[delta]
features = line-numbers decorations side-by-side
features = line-numbers decorations
plus-style = "syntax bold auto"
minus-style = "syntax bold italic auto"
syntax-theme = "gruvbox-light"
......
local lsp_config = require("lspconfig")
local capabilities = vim.lsp.protocol.make_client_capabilities()
capabilities = require("cmp_nvim_lsp").update_capabilities(capabilities)
capabilities.textDocument.completion.completionItem.snippetSupport = true
lsp_config.gopls.setup({
capabilities = capabilities,
settings = {
gopls = {
experimentalPostfixCompletions = true,
analyses = {
fieldalignment = true,
nilness = true,
unusedwrite = true,
unusedparams = true,
shadow = true,
unreachable = true,
bools = true,
},
staticcheck = true,
usePlaceholders = true,
codelenses = {
gc_details = true,
},
},
},
})
vim.cmd('set noexpandtab')
......@@ -4,3 +4,5 @@ require("keybindings")
require("plugins")
require("lsp")
require("treesitter")
require("snippets")
require("automagic")
......@@ -10,6 +10,7 @@ end
local function basic_configuration()
local options = {
winbar = "%=%m %f";
hidden = true;
fileformats = "unix,mac,dos";
modeline = true;
......@@ -31,7 +32,7 @@ local function basic_configuration()
termguicolors = true;
background = "dark";
ttyfast = true;
lazyredraw = true;
-- lazyredraw = true;
listchars = "tab:»·,nbsp:+,trail:·,extends:→,precedes:←";
showcmd = true;
ruler = true;
......@@ -42,7 +43,7 @@ local function basic_configuration()
wildmenu = true;
wildignore = "*.o,*.class,*.hi,*.pdf,*.git,*.blg,*.bbl,*.aux,*.gcno,*.gcda";
showmode = true;
laststatus = 2;
laststatus = 3;
scrolloff = 7;
cmdheight = 2;
tabpagemax = 100;
......
......@@ -2,30 +2,122 @@ local lspkind = require("lspkind")
lspkind.init()
local cmp_autopairs = require("nvim-autopairs.completion.cmp")
local luasnip = require("luasnip")
local cmp = require("cmp")
local has_words_before = function()
local line, col = unpack(vim.api.nvim_win_get_cursor(0))
return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil
end
local t = function(str)
return vim.api.nvim_replace_termcodes(str, true, true, true)
end
cmp.setup({
snippet = {
expand = function(args)
--require("luasnip").lsp_expand(args.body)
require("snippy").expand_snippet(args.body)
luasnip.lsp_expand(args.body)
--require("snippy").expand_snippet(args.body)
end,
},
mapping = {
["<C-d>"] = cmp.mapping(cmp.mapping.scroll_docs(-4), { "i", "c" }),
["<C-f>"] = cmp.mapping(cmp.mapping.scroll_docs(4), { "i", "c" }),
["<C-e>"] = cmp.mapping({
i = cmp.mapping.abort(),
c = cmp.mapping.close(),
["<C-d>"] = cmp.mapping.scroll_docs(-4),
["<C-f>"] = cmp.mapping.scroll_docs(2),
['<Down>'] = cmp.mapping(cmp.mapping.select_next_item({ behavior = cmp.SelectBehavior.Select }), { 'i' }),
['<Up>'] = cmp.mapping(cmp.mapping.select_prev_item({ behavior = cmp.SelectBehavior.Select }), { 'i' }),
['<C-n>'] = cmp.mapping({
c = function()
if cmp.visible() then
cmp.select_next_item({ behavior = cmp.SelectBehavior.Select })
elseif luasnip.expand_or_jumpable() then
luasnip.expand_or_jump()
elseif has_words_before() then
cmp.complete()
else
vim.api.nvim_feedkeys(t('<Down>'), 'n', true)
end
end,
i = function(fallback)
if cmp.visible() then
cmp.select_next_item({ behavior = cmp.SelectBehavior.Select })
elseif luasnip.expand_or_jumpable() then
luasnip.expand_or_jump()
elseif has_words_before() then
cmp.complete()
else
fallback()
end
end
}),
['<C-p>'] = cmp.mapping({
c = function()
if cmp.visible() then
cmp.select_prev_item({ behavior = cmp.SelectBehavior.Select })
elseif luasnip.jumpable(-1) then
luasnip.jump(-1)
else
vim.api.nvim_feedkeys(t('<Up>'), 'n', true)
end
end,
i = function(fallback)
if cmp.visible() then
cmp.select_prev_item({ behavior = cmp.SelectBehavior.Select })
elseif luasnip.jumpable(-1) then
luasnip.jump(-1)
else
fallback()
end
end
}),
["<C-e>"] = cmp.mapping.close(),
["<c-y>"] = cmp.mapping.confirm({
behavior = cmp.ConfirmBehavior.Insert,
select = true,
}),
["<c-q>"] = cmp.mapping.confirm({
behavior = cmp.ConfirmBehavior.Replace,
select = true,
}),
-- ["<CR>"] = cmp.mapping.confirm({ select = true }),
-- ["<Tab>"] = cmp.mapping(function(fallback)
-- if cmp.visible() then
-- cmp.select_next_item()
-- elseif luasnip.expand_or_jumpable() then
-- luasnip.expand_or_jump()
-- elseif has_words_before() then
-- cmp.complete()
-- else
-- fallback()
-- end
-- end, {
-- "i",
-- "s",
-- }),
-- ["<S-Tab>"] = cmp.mapping(function(fallback)
-- if cmp.visible() then
-- cmp.select_prev_item()
-- elseif luasnip.jumpable(-1) then
-- luasnip.jump(-1)
-- else
-- fallback()
-- end
-- end, {
-- "i",
-- "s",
-- }),
},
sources = cmp.config.sources({
{ name = "nvim_lsp" },
{ name = "luasnip" },
{ name = "nvim_lua" },
{ name = "path" },
{ name = "snippy" },
--{ name = "snippy" },
{ name = "buffer", keyword_length = 5 },
}),
......@@ -42,6 +134,18 @@ cmp.setup({
}),
},
sorting = {
comparators = {
cmp.config.compare.offset,
cmp.config.compare.exact,
cmp.config.compare.score,
cmp.config.compare.kind,
cmp.config.compare.sort_text,
cmp.config.compare.length,
cmp.config.compare.order,
},
},
experimental = {
native_menu = false,
ghost_text = true,
......
......@@ -31,7 +31,7 @@ local keymap = {
r = { "<Cmd>lua vim.lsp.buf.rename()<CR>", "rename" },
s = { "<Cmd>lua vim.lsp.buf.references()<CR>", "find" },
p = { "<cmd>lua vim.lsp.buf.hover()<CR>", "preview definition" },
f = { "<Cmd>lua vim.lsp.buf.formatting()<CR>", "format" },
f = { "<Cmd>lua vim.lsp.buf.format({ async = true })<CR>", "format" },
d = { "<Cmd>lua vim.lsp.buf.definition()<CR>", "go to definition" },
i = { "<Cmd>lua vim.lsp.buf.implementation()<CR>", "go to definition" },
t = { "<Cmd>LspTroubleToggle lsp_workspace_diagnostics<CR>", "open LspTrouble" },
......
local lsp_config = require("lspconfig")
-- local ih = require("inlay-hints")
--
-- ih.setup({
-- only_current_line = true,
-- eol = {
-- right_align = true,
-- right_align_padding = 10,
-- }
-- })
-- lsp_lines includes a better solution, disabled to avoid double diags.
vim.diagnostic.config({
virtual_text = false,
})
local capabilities = vim.lsp.protocol.make_client_capabilities()
capabilities = require("cmp_nvim_lsp").update_capabilities(capabilities)
capabilities = require("cmp_nvim_lsp").default_capabilities(capabilities)
capabilities.textDocument.completion.completionItem.snippetSupport = true
lsp_config.terraformls.setup({})
lsp_config.java_language_server.setup({
cmd = { "/usr/bin/java-language-server" },
})
lsp_config.gopls.setup({
capabilities = capabilities,
-- on_attach = function(c, b)
-- ih.on_attach(c, b)
-- end,
settings = {
gopls = {
experimentalPostfixCompletions = true,
......@@ -14,15 +37,27 @@ lsp_config.gopls.setup({
nilness = true,
unusedwrite = true,
unusedparams = true,
unusedvariable = true,
shadow = true,
unreachable = true,
bools = true,
useany = true,
},
staticcheck = true,
usePlaceholders = true,
codelenses = {
gc_details = true,
},
semanticTokens = true,
hints = {
assignVariableTypes = true,
compositeLiteralFields = true,
compositeLiteralTypes = true,
constantValues = true,
functionTypeParameters = true,
parameterNames = true,
rangeVariableTypes = true,
},
},
},
})
......@@ -52,7 +87,7 @@ local opts = {
-- Whether to show hover actions inside the hover window
-- This overrides the default hover handler
hover_with_actions = true,
-- hover_with_actions = true,
runnables = {
-- whether to use telescope for selection menu or not
......@@ -154,15 +189,23 @@ lsp_config.metals.setup({
lsp_config.dartls.setup({})
lsp_config.texlab.setup({})
lsp_config.ccls.setup({
capabilities = capabilities,
})
lsp_config.sumneko_lua.setup({
cmd = { "/usr/bin/lua-language-server" },
-- on_attach = function(c, b)
-- ih.on_attach(c, b)
-- end,
capabilities = capabilities,
settings = {
Lua = {
hint = {
enable = true,
},
runtime = {
-- Tell the language server which version of Lua you're using (most likely LuaJIT in the case of Neovim)
version = "LuaJIT",
......@@ -251,6 +294,7 @@ if vim.g.snippets ~= "luasnip" then
end
local ls = require("luasnip")
require("snippets")
ls.config.set_config({
history = true,
......@@ -384,6 +428,7 @@ local function go_result_type(info)
end
end
end
-- }}}
local shortcut = function(val)
if type(val) == "string" then
......@@ -461,13 +506,14 @@ snippets.go = make {
ie = { "if err != nil {", "\treturn err", i(0), "}" },
}
vim.cmd [[augroup lsp]]
vim.cmd [[au!]]
vim.cmd [[au FileType scala,sbt lua require("metals").initialize_or_attach({})]]
vim.cmd [[augroup end]]
vim.cmd([[augroup lsp]])
vim.cmd([[au!]])
vim.cmd([[au FileType scala,sbt lua require("metals").initialize_or_attach({})]])
vim.cmd([[augroup end]])
local metals_config = require("metals").bare_config()
metals_config.settings = {
showImplicitArguments = true,
}
require('dap-go').setup()
......@@ -57,6 +57,85 @@ return require("packer").startup(function(use)
require("bufferline").setup({})
end,
})
use({
"dnlhc/glance.nvim",
config = function()
require('glance').setup({
height = 18, -- Height of the window
zindex = 45,
border = {
enable = false, -- Show window borders. Only horizontal borders allowed
top_char = '―',
bottom_char = '―',
},
list = {
position = 'right', -- Position of the list window 'left'|'right'
width = 0.33, -- 33% width relative to the active window, min 0.1, max 0.5
},
theme = { -- This feature might not work properly in nvim-0.7.2
enable = true, -- Will generate colors for the plugin based on your current colorscheme
mode = 'auto', -- 'brighten'|'darken'|'auto', 'auto' will set mode based on the brightness of your colorscheme
},
hooks = {},
folds = {
fold_closed = '',
fold_open = '',
folded = true, -- Automatically fold list on startup
},
indent_lines = {
enable = true,
icon = '│',
},
winbar = {
enable = true, -- Available strating from nvim-0.8+
},
})
end,
})
-- use({
-- "folke/noice.nvim",
-- config = function()
-- require("noice").setup()
-- end,
-- requires = {
-- -- if you lazy-load any plugin below, make sure to add proper `module="..."` entries
-- "MunifTanjim/nui.nvim",
-- -- OPTIONAL:
-- -- `nvim-notify` is only needed, if you want to use the notification view.
-- -- If not available, we use `mini` as the fallback
-- "rcarriga/nvim-notify",
-- }
-- })
-- use({
-- "b0o/incline.nvim",
-- config = function()
-- require("incline").setup({
-- debounce_threshold = { falling = 500, rising = 250 },
-- render = function(props)
-- local bufname = vim.api.nvim_buf_get_name(props.buf)
-- local filename = vim.fn.fnamemodify(bufname, ":t")
-- local diagnostics = get_diagnostic_label(props)
-- local modified = vim.api.nvim_buf_get_option(props.buf, "modified") and "bold,italic" or "None"
-- local filetype_icon, color = require("nvim-web-devicons").get_icon_color(filename)
-- local buffer = {
-- { filetype_icon, guifg = color },
-- { " " },
-- { filename, gui = modified },
-- }
-- if #diagnostics > 0 then
-- table.insert(diagnostics, { "| ", guifg = "grey" })
-- end
-- for _, buffer_ in ipairs(buffer) do
-- table.insert(diagnostics, buffer_)
-- end
-- return diagnostics
-- end,
-- })
-- end
-- })
-- Utilities
use("editorconfig/editorconfig-vim")
......@@ -70,6 +149,14 @@ return require("packer").startup(function(use)
"nvim-treesitter/nvim-treesitter-textobjects",
},
})
use({
"nvim-treesitter/playground",
requires = {
"nvim-treesitter/nvim-treesitter"
}
})
use({
"nvim-telescope/telescope.nvim",
......@@ -101,6 +188,12 @@ return require("packer").startup(function(use)
requires = { "RishabhRD/popfix" },
disable = true,
})
use({
"https://git.sr.ht/~whynothugo/lsp_lines.nvim",
config = function()
require("lsp_lines").setup()
end,
})
use({
"nvim-lua/lsp_extensions.nvim",
......@@ -120,6 +213,26 @@ return require("packer").startup(function(use)
end,
})
use('simrat39/inlay-hints.nvim')
use('hashivim/vim-terraform')
use({
'simrat39/symbols-outline.nvim',
config = require("symbols-outline").setup()
})
use({
"rcarriga/nvim-dap-ui",
requires = { "mfussenegger/nvim-dap" }
})
use({
'yriveiro/dap-go.nvim',
requires = { 'nvim-lua/plenary.nvim' }
})
use({
"folke/lsp-trouble.nvim",
disable = true,
......@@ -140,20 +253,36 @@ return require("packer").startup(function(use)
use("hrsh7th/cmp-nvim-lua")
use("hrsh7th/cmp-nvim-lsp")
use("hrsh7th/nvim-cmp")
-- use({
-- "dcampos/cmp-snippy",
-- requires = {
-- "dcampos/nvim-snippy",
-- "honza/vim-snippets",
-- },
-- })
use({
"dcampos/cmp-snippy",
"saadparwaiz1/cmp_luasnip",
requires = {
"dcampos/nvim-snippy",
"honza/vim-snippets",
"L3MON4D3/LuaSnip",
},
})
-- use({
-- "saadparwaiz1/cmp_luasnip",
-- "rafamadriz/friendly-snippets",
-- disable = true,
-- requires = {
-- "L3MON4D3/LuaSnip",
-- },
-- -- config = function()
-- -- require("config.snip").setup()
-- -- require("luasnip/loaders/from_vscode").load({
-- -- paths = { "~/.local/share/nvim/site/pack/packer/start/friendly-snippets" },
-- -- })
-- -- end,
-- })
use("windwp/nvim-autopairs")
......
require("luasnip.loaders.from_vscode").load({paths= {"~/.local/share/nvim/site/pack/packer/start/friendly-snippets/"}})
local ls = require("luasnip")
ls.filetype_extend("all", { "_" })
......@@ -3,10 +3,11 @@ ts_configs.setup {
ensure_installed = {
'bash', 'bibtex', 'c', 'comment', 'cpp', 'css', 'go', 'haskell',
'html', 'javascript', 'json', 'jsonc', 'julia', 'kotlin', 'latex', 'lua', 'ocaml',
'ocaml_interface', 'python', 'regex', 'rust', 'teal', 'toml', 'typescript', 'yaml', 'zig'
'ocaml_interface', 'python', 'regex', 'rust', 'teal', 'toml', 'typescript', 'yaml',
'zig', 'query',
},
highlight = {enable = true, use_languagetree = true},
indent = {enable = false},
highlight = { enable = true, use_languagetree = true },
indent = { enable = false },
incremental_selection = {
enable = true,
keymaps = {
......@@ -17,10 +18,30 @@ ts_configs.setup {
}
},
refactor = {
smart_rename = {enable = true, keymaps = {smart_rename = "grr"}},
highlight_definitions = {enable = true},
smart_rename = { enable = true, keymaps = { smart_rename = "grr" } },
highlight_definitions = { enable = true },
highlight_current_scope = { enable = false }
}--,
},
playground = {
enable = true,
disable = {},
updatetime = 25, -- Debounced time for highlighting nodes in the playground from source code
persist_queries = false, -- Whether the query persists across vim sessions
keybindings = {
toggle_query_editor = 'o',
toggle_hl_groups = 'i',
toggle_injected_languages = 't',
toggle_anonymous_nodes = 'a',
toggle_language_display = 'I',
focus_language = 'f',
unfocus_language = 'F',
update = 'R',
goto_node = '<cr>',
show_help = '?',
},
}
--,
--textobjects = {
-- select = {
-- enable = true,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment