aboutsummaryrefslogtreecommitdiff
path: root/neovim
diff options
context:
space:
mode:
Diffstat (limited to 'neovim')
-rw-r--r--neovim/.config/nvim/init.lua6
-rw-r--r--neovim/.config/nvim/lua/autocmd.lua24
-rw-r--r--neovim/.config/nvim/lua/keybinds.lua9
-rw-r--r--neovim/.config/nvim/lua/plugins.lua10
-rw-r--r--neovim/.config/nvim/lua/plugins/autopairs.lua0
-rw-r--r--neovim/.config/nvim/lua/plugins/cmp.lua2
-rw-r--r--neovim/.config/nvim/lua/plugins/gitsigns.lua10
-rw-r--r--neovim/.config/nvim/lua/plugins/lsp.lua43
-rw-r--r--neovim/.config/nvim/lua/plugins/lualine.lua2
-rw-r--r--neovim/.config/nvim/lua/plugins/pairs.lua1
-rw-r--r--neovim/.config/nvim/lua/plugins/rust-tools.lua4
-rw-r--r--neovim/.config/nvim/lua/plugins/telescope.lua12
-rw-r--r--neovim/.config/nvim/lua/plugins/todocomments.lua66
-rw-r--r--neovim/.config/nvim/lua/plugins/treesitter.lua1
-rw-r--r--neovim/.config/nvim/plugin/packer_compiled.lua25
15 files changed, 172 insertions, 43 deletions
diff --git a/neovim/.config/nvim/init.lua b/neovim/.config/nvim/init.lua
index ccad37a..27d1417 100644
--- a/neovim/.config/nvim/init.lua
+++ b/neovim/.config/nvim/init.lua
@@ -3,12 +3,6 @@ require("keybinds")
require("autocmd")
require("plugins")
--- https://sharksforarms.dev/posts/neovim-rust/
--- https://ka.codes/posts/nvim-lspinstall
--- https://rsdlt.github.io/posts/rust-nvim-ide-guide-walkthrough-development-debug/#why-neovim-for-rust-development
-
--- 1. italic error signs -> probably st
-
-- Pretty print lua table
function _G.dump(...)
local objects = vim.tbl_map(vim.inspect, { ... })
diff --git a/neovim/.config/nvim/lua/autocmd.lua b/neovim/.config/nvim/lua/autocmd.lua
index 603e6b4..3854532 100644
--- a/neovim/.config/nvim/lua/autocmd.lua
+++ b/neovim/.config/nvim/lua/autocmd.lua
@@ -13,7 +13,7 @@ vim.filetype.add({
local cmd = vim.api.nvim_create_autocmd
-- Go to last location when opening buffer
-cmd("BufReadPost", {
+cmd("BufReadPost", {
command = [[ if line("'\"") > 1 && line("'\"") <= line("$") | execute "normal! g`\"" | endif ]]
})
@@ -23,3 +23,25 @@ cmd("TextYankPost", {
callback = function() vim.highlight.on_yank({ higroup = "Visual" }) end,
})
+--[[ vim.api.nvim_create_autocmd(
+ {"TextChangedI", "TextChangedP"},
+ {
+ callback = function()
+ local line = vim.api.nvim_get_current_line()
+ local cursor = vim.api.nvim_win_get_cursor(0)[2]
+
+ local current = string.sub(line, cursor, cursor + 1)
+ if current == "." or current == "," or current == " " then
+ require('cmp').close()
+ end
+
+ local before_line = string.sub(line, 1, cursor + 1)
+ local after_line = string.sub(line, cursor + 1, -1)
+ if not string.match(before_line, '^%s+$') then
+ if after_line == "" or string.match(before_line, " $") or string.match(before_line, "%.$") then
+ require('cmp').complete()
+ end
+ end
+ end,
+ pattern = "*"
+}) ]]
diff --git a/neovim/.config/nvim/lua/keybinds.lua b/neovim/.config/nvim/lua/keybinds.lua
index 56834b2..d113573 100644
--- a/neovim/.config/nvim/lua/keybinds.lua
+++ b/neovim/.config/nvim/lua/keybinds.lua
@@ -10,7 +10,7 @@ map("n", "n", "nzz")
map("n", "N", "Nzz")
-- Move line up and down in NORMAL and VISUAL modes
-map("n", "<A-j>", "<cmd>move .+1<cmd>")
+map("n", "<A-j>", "<cmd>move .+1<cr>")
map("n", "<A-k>", "<cmd>move .-2<cr>")
map("x", "<A-j>", ":move '>+1<cr>gv=gv")
map("x", "<A-k>", ":move '<-2<cr>gv=gv")
@@ -29,6 +29,13 @@ map("n", "<C-c>", ":!compile %<cr><cr>")
-- Move to last buffer
-- map("n", """", "<CMD>b#<CR>")
+-- Plugin
+map("n", "<C-f>", "<cmd>TodoTelescope<cr>")
+
+-- Hacky update thing
+-- TODO: Fix timing
+map("n", "<leader>u", "<cmd>PackerSync<cr><cmd>PackerCompile<cr><cmd>TSUpdate<cr><cmd>Mason<cr>")
+
exp = {}
exp.map = map
diff --git a/neovim/.config/nvim/lua/plugins.lua b/neovim/.config/nvim/lua/plugins.lua
index 5b28fbb..d5de0b0 100644
--- a/neovim/.config/nvim/lua/plugins.lua
+++ b/neovim/.config/nvim/lua/plugins.lua
@@ -9,7 +9,9 @@ return require("packer").startup(function(use)
use("wbthomason/packer.nvim")
use("nvim-lua/plenary.nvim")
- -- Color theme
+ use 'h-hg/fcitx.nvim'
+
+ -- Color theme
use({
"catppuccin/nvim",
as = "catppuccin-theme",
@@ -57,6 +59,12 @@ return require("packer").startup(function(use)
},
})
+ use({
+ "folke/todo-comments.nvim",
+ requires = "nvim-lua/plenary.nvim",
+ config = function() require("plugins.todocomments") end,
+ })
+
-- Git features
use({
"lewis6991/gitsigns.nvim",
diff --git a/neovim/.config/nvim/lua/plugins/autopairs.lua b/neovim/.config/nvim/lua/plugins/autopairs.lua
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/neovim/.config/nvim/lua/plugins/autopairs.lua
diff --git a/neovim/.config/nvim/lua/plugins/cmp.lua b/neovim/.config/nvim/lua/plugins/cmp.lua
index 18d8fe6..09a0381 100644
--- a/neovim/.config/nvim/lua/plugins/cmp.lua
+++ b/neovim/.config/nvim/lua/plugins/cmp.lua
@@ -1,5 +1,5 @@
-- https://github.com/hrsh7th/nvim-cmp#basic-configuration
-local cmp = require('cmp')
+local cmp = require("cmp")
cmp.setup({
snippet = {
diff --git a/neovim/.config/nvim/lua/plugins/gitsigns.lua b/neovim/.config/nvim/lua/plugins/gitsigns.lua
index 61f6238..5663e64 100644
--- a/neovim/.config/nvim/lua/plugins/gitsigns.lua
+++ b/neovim/.config/nvim/lua/plugins/gitsigns.lua
@@ -2,10 +2,12 @@ local map = vim.keymap.set
require("gitsigns").setup({
signs = {
- add = { text = "+" },
- delete = { text = "-" },
- change = { text = "~" },
- changedelete = { text = "⋍" },
+ add = { hl = 'GitSignsAdd' , text = '│', numhl='GitSignsAddNr' , linehl='GitSignsAddLn' },
+ untracked = { hl = 'GitSignsAdd' , text = '│', numhl='GitSignsAddNr' , linehl='GitSignsAddLn' },
+ change = { hl = 'GitSignsChange', text = '│', numhl='GitSignsChangeNr', linehl='GitSignsChangeLn' },
+ changedelete = { hl = 'GitSignsChange', text = '│', numhl='GitSignsChangeNr', linehl='GitSignsChangeLn' },
+ delete = { hl = 'GitSignsDelete', text = '▁', numhl='GitSignsDeleteNr', linehl='GitSignsDeleteLn' },
+ topdelete = { hl = 'GitSignsDelete', text = '▔', numhl='GitSignsDeleteNr', linehl='GitSignsDeleteLn' },
},
on_attach = function(buf)
local gs = package.loaded.gitsigns
diff --git a/neovim/.config/nvim/lua/plugins/lsp.lua b/neovim/.config/nvim/lua/plugins/lsp.lua
index db73c10..703fa7c 100644
--- a/neovim/.config/nvim/lua/plugins/lsp.lua
+++ b/neovim/.config/nvim/lua/plugins/lsp.lua
@@ -1,4 +1,26 @@
-require("lspconfig")
+local lspconf = require("lspconfig")
+
+local capabilities = vim.lsp.protocol.make_client_capabilities()
+capabilities.textDocument.completion.completionItem.snippetSupport = true
+
+lspconf.html.setup {
+ capabilities = capabilities,
+}
+
+lspconf.cssls.setup({
+ capabilities = capabilities,
+})
+
+lspconf.emmet_ls.setup({})
+lspconf.tsserver.setup({
+ capabilities = capabilities,
+ on_attach = function() end,
+})
+
+lspconf.eslint.setup({
+ capabilities = capabilities,
+ on_attach = function() end,
+})
local sign = function(opts)
vim.fn.sign_define(opts.name, {
@@ -8,10 +30,10 @@ local sign = function(opts)
})
end
-sign({name = 'DiagnosticSignError', text = ''})
-sign({name = 'DiagnosticSignWarn', text = ''})
-sign({name = 'DiagnosticSignHint', text = ''})
-sign({name = 'DiagnosticSignInfo', text = ''})
+sign({name = 'DiagnosticSignError', text = ''})
+sign({name = 'DiagnosticSignWarn', text = ''})
+sign({name = 'DiagnosticSignInfo', text = ''})
+sign({name = 'DiagnosticSignHint', text = ''})
vim.diagnostic.config({
signs = true,
@@ -31,7 +53,10 @@ require("keybinds")
map("n", "<F2>", "<cmd>lua vim.lsp.buf.rename()<cr>")
map("n", "<C-h>", "<cmd>lua vim.diagnostic.open_float()<cr>")
---[[
+map("n", "<leader>dn", "<cmd>lua vim.diagnostic.goto_next()<cr>")
+map("n", "<leader>dp", "<cmd>lua vim.diagnostic.goto_prev()<cr>")
+
+--[[
nnoremap <silent> <c-]> <cmd>lua vim.lsp.buf.definition()<CR>
nnoremap <silent> K <cmd>lua vim.lsp.buf.hover()<CR>
nnoremap <silent> gD <cmd>lua vim.lsp.buf.implementation()<CR>
@@ -69,11 +94,5 @@ bufmap('x', '<F4>', '<cmd>lua vim.lsp.buf.range_code_action()<cr>')
-- Show diagnostics in a floating window
bufmap('n', 'gl', '<cmd>lua vim.diagnostic.open_float()<cr>')
-
--- Move to the previous diagnostic
-bufmap('n', '[d', '<cmd>lua vim.diagnostic.goto_prev()<cr>')
-
--- Move to the next diagnostic
-bufmap('n', ']d', '<cmd>lua vim.diagnostic.goto_next()<cr>')
]]
diff --git a/neovim/.config/nvim/lua/plugins/lualine.lua b/neovim/.config/nvim/lua/plugins/lualine.lua
index 353e691..46ad4f0 100644
--- a/neovim/.config/nvim/lua/plugins/lualine.lua
+++ b/neovim/.config/nvim/lua/plugins/lualine.lua
@@ -3,7 +3,7 @@ require("lualine").setup({
theme = "catppuccin",
component_separators = { left = "»", right = "«" },
section_separators = "",
- icons_enabled = true,
+ icons_enabled = false,
globalstatus = true,
},
sections = {
diff --git a/neovim/.config/nvim/lua/plugins/pairs.lua b/neovim/.config/nvim/lua/plugins/pairs.lua
index ed0e692..cdaa868 100644
--- a/neovim/.config/nvim/lua/plugins/pairs.lua
+++ b/neovim/.config/nvim/lua/plugins/pairs.lua
@@ -1,2 +1,3 @@
require("nvim-autopairs").setup()
require("cmp").event:on("confirm_done", require("nvim-autopairs.completion.cmp").on_confirm_done())
+
diff --git a/neovim/.config/nvim/lua/plugins/rust-tools.lua b/neovim/.config/nvim/lua/plugins/rust-tools.lua
index c8442aa..68e882c 100644
--- a/neovim/.config/nvim/lua/plugins/rust-tools.lua
+++ b/neovim/.config/nvim/lua/plugins/rust-tools.lua
@@ -1,3 +1,7 @@
+local on_attach = function()
+ vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc')
+end
+
require("rust-tools").setup({
tools = {
autoSetHints = true,
diff --git a/neovim/.config/nvim/lua/plugins/telescope.lua b/neovim/.config/nvim/lua/plugins/telescope.lua
index 01dcb2f..6d3be34 100644
--- a/neovim/.config/nvim/lua/plugins/telescope.lua
+++ b/neovim/.config/nvim/lua/plugins/telescope.lua
@@ -1,18 +1,9 @@
local actions = require("telescope.actions")
local finders = require("telescope.builtin")
-local action_mt = require "telescope.actions.mt"
-local action_state = require "telescope.actions.state"
--- global for later inspection
-custom_actions = action_mt.transform_mod({
- print_entry = function()
- print(vim.inspect(action_state.get_selected_entry()))
- end,
-})
-
require("telescope").setup({
defaults = {
- prompt_prefix = " ",
+ prompt_prefix = "> ",
initial_mode = "insert",
sorting_strategy = "ascending",
layout_config = {
@@ -20,7 +11,6 @@ require("telescope").setup({
},
mappings = {
i = {
- ["<C-M>"] = custom_actions['print_entry'],
["<ESC>"] = actions.close,
["<C-j>"] = actions.move_selection_next,
["<C-k>"] = actions.move_selection_previous,
diff --git a/neovim/.config/nvim/lua/plugins/todocomments.lua b/neovim/.config/nvim/lua/plugins/todocomments.lua
new file mode 100644
index 0000000..a0c75a3
--- /dev/null
+++ b/neovim/.config/nvim/lua/plugins/todocomments.lua
@@ -0,0 +1,66 @@
+local todocomments = require("todo-comments")
+
+todocomments.setup({
+ signs = true, -- show icons in the signs column
+ sign_priority = 8, -- sign priority
+ -- keywords recognized as todo comments
+ keywords = {
+ FIX = {
+ icon = " ", -- icon used for the sign, and in search results
+ color = "error", -- can be a hex color, or a named color (see below)
+ alt = { "FIXME", "BUG", "FIXIT", "ISSUE" }, -- a set of other keywords that all map to this FIX keywords
+ signs = false, -- configure signs for some keywords individually
+ },
+ TODO = { icon = " ", color = "info", signs = false },
+ HACK = { icon = " ", color = "warning", signs = false },
+ WARN = { icon = " ", color = "warning", alt = { "WARNING", "XXX" }, signs = false },
+ PERF = { icon = " ", alt = { "OPTIM", "PERFORMANCE", "OPTIMIZE" }, signs = false },
+ NOTE = { icon = " ", color = "hint", alt = { "INFO" }, signs = false },
+ TEST = { icon = "⏲ ", color = "test", alt = { "TESTING", "PASSED", "FAILED" }, signs = false },
+ },
+ gui_style = {
+ fg = "NONE", -- The gui style to use for the fg highlight group.
+ bg = "BOLD", -- The gui style to use for the bg highlight group.
+ },
+ merge_keywords = true, -- when true, custom keywords will be merged with the defaults
+ -- highlighting of the line containing the todo comment
+ -- * before: highlights before the keyword (typically comment characters)
+ -- * keyword: highlights of the keyword
+ -- * after: highlights after the keyword (todo text)
+ highlight = {
+ multiline = true, -- enable multine todo comments
+ multiline_pattern = "^.", -- lua pattern to match the next multiline from the start of the matched keyword
+ multiline_context = 10, -- extra lines that will be re-evaluated when changing a line
+ before = "", -- "fg" or "bg" or empty
+ keyword = "wide", -- "fg", "bg", "wide", "wide_bg", "wide_fg" or empty. (wide and wide_bg is the same as bg, but will also highlight surrounding characters, wide_fg acts accordingly but with fg)
+ after = "fg", -- "fg" or "bg" or empty
+ pattern = [[.*<(KEYWORDS)\s*:]], -- pattern or table of patterns, used for highlightng (vim regex)
+ comments_only = true, -- uses treesitter to match keywords in comments only
+ max_line_len = 400, -- ignore lines longer than this
+ exclude = {}, -- list of file types to exclude highlighting
+ },
+ -- list of named colors where we try to extract the guifg from the
+ -- list of highlight groups or use the hex color if hl not found as a fallback
+ colors = {
+ error = { "DiagnosticError", "ErrorMsg", "#DC2626" },
+ warning = { "DiagnosticWarn", "WarningMsg", "#FBBF24" },
+ info = { "DiagnosticInfo", "#2563EB" },
+ hint = { "DiagnosticHint", "#10B981" },
+ default = { "Identifier", "#7C3AED" },
+ test = { "Identifier", "#FF00FF" }
+ },
+ search = {
+ command = "rg",
+ args = {
+ "--color=never",
+ "--no-heading",
+ "--with-filename",
+ "--line-number",
+ "--column",
+ },
+ -- regex that will be used to match keywords.
+ -- don't replace the (KEYWORDS) placeholder
+ pattern = [[\b(KEYWORDS):]], -- ripgrep regex
+ -- pattern = [[\b(KEYWORDS)\b]], -- match without the extra colon. You'll likely get false positives
+ },
+})
diff --git a/neovim/.config/nvim/lua/plugins/treesitter.lua b/neovim/.config/nvim/lua/plugins/treesitter.lua
index e3d8fbb..f05cca9 100644
--- a/neovim/.config/nvim/lua/plugins/treesitter.lua
+++ b/neovim/.config/nvim/lua/plugins/treesitter.lua
@@ -8,6 +8,7 @@ require("nvim-treesitter.configs").setup({
auto_install = true,
ensure_installed = {
"c",
+ "cpp",
"lua",
"rust",
"go",
diff --git a/neovim/.config/nvim/plugin/packer_compiled.lua b/neovim/.config/nvim/plugin/packer_compiled.lua
index a561012..1d6578d 100644
--- a/neovim/.config/nvim/plugin/packer_compiled.lua
+++ b/neovim/.config/nvim/plugin/packer_compiled.lua
@@ -120,6 +120,11 @@ _G.packer_plugins = {
path = "/home/me/.local/share/nvim/site/pack/packer/opt/cmp-vsnip",
url = "https://github.com/hrsh7th/cmp-vsnip"
},
+ ["fcitx.nvim"] = {
+ loaded = true,
+ path = "/home/me/.local/share/nvim/site/pack/packer/start/fcitx.nvim",
+ url = "https://github.com/h-hg/fcitx.nvim"
+ },
["fidget.nvim"] = {
config = { "\27LJ\2\n.\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\19plugins.fidget\frequire\0" },
load_after = {
@@ -173,7 +178,7 @@ _G.packer_plugins = {
url = "https://github.com/windwp/nvim-autopairs"
},
["nvim-cmp"] = {
- after = { "cmp-vsnip", "cmp-buffer", "nvim-autopairs", "cmp-nvim-lsp", "rust-tools.nvim", "vim-vsnip", "cmp-path" },
+ after = { "cmp-nvim-lsp", "cmp-path", "cmp-vsnip", "nvim-autopairs", "vim-vsnip", "rust-tools.nvim", "cmp-buffer" },
config = { "\27LJ\2\n+\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\16plugins.cmp\frequire\0" },
loaded = true,
only_config = true,
@@ -189,7 +194,7 @@ _G.packer_plugins = {
url = "https://github.com/neovim/nvim-lspconfig"
},
["nvim-treesitter"] = {
- after = { "nvim-treesitter-textobjects", "playground", "nvim-treesitter-refactor" },
+ after = { "playground", "nvim-treesitter-textobjects", "nvim-treesitter-refactor" },
config = { "\27LJ\2\n2\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\23plugins.treesitter\frequire\0" },
loaded = false,
needs_bufread = false,
@@ -258,6 +263,12 @@ _G.packer_plugins = {
path = "/home/me/.local/share/nvim/site/pack/packer/start/telescope.nvim",
url = "https://github.com/nvim-telescope/telescope.nvim"
},
+ ["todo-comments.nvim"] = {
+ config = { "\27LJ\2\n4\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\25plugins.todocomments\frequire\0" },
+ loaded = true,
+ path = "/home/me/.local/share/nvim/site/pack/packer/start/todo-comments.nvim",
+ url = "https://github.com/folke/todo-comments.nvim"
+ },
["vim-vsnip"] = {
load_after = {},
loaded = true,
@@ -280,6 +291,10 @@ time([[Config for catppuccin-theme]], false)
time([[Config for nvim-cmp]], true)
try_loadstring("\27LJ\2\n+\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\16plugins.cmp\frequire\0", "config", "nvim-cmp")
time([[Config for nvim-cmp]], false)
+-- Config for: todo-comments.nvim
+time([[Config for todo-comments.nvim]], true)
+try_loadstring("\27LJ\2\n4\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\25plugins.todocomments\frequire\0", "config", "todo-comments.nvim")
+time([[Config for todo-comments.nvim]], false)
-- Config for: telescope.nvim
time([[Config for telescope.nvim]], true)
try_loadstring("\27LJ\2\n1\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\22plugins.telescope\frequire\0", "config", "telescope.nvim")
@@ -297,15 +312,15 @@ vim.cmd [[ packadd telescope-fzf-native.nvim ]]
-- Config for: telescope-fzf-native.nvim
try_loadstring("\27LJ\2\nH\0\0\3\0\4\0\a6\0\0\0'\2\1\0B\0\2\0029\0\2\0'\2\3\0B\0\2\1K\0\1\0\bfzf\19load_extension\14telescope\frequire\0", "config", "telescope-fzf-native.nvim")
+vim.cmd [[ packadd cmp-buffer ]]
vim.cmd [[ packadd cmp-path ]]
-vim.cmd [[ packadd vim-vsnip ]]
vim.cmd [[ packadd rust-tools.nvim ]]
-- Config for: rust-tools.nvim
try_loadstring("\27LJ\2\n2\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\23plugins.rust-tools\frequire\0", "config", "rust-tools.nvim")
+vim.cmd [[ packadd vim-vsnip ]]
vim.cmd [[ packadd cmp-nvim-lsp ]]
-vim.cmd [[ packadd cmp-buffer ]]
vim.cmd [[ packadd cmp-vsnip ]]
time([[Sequenced loading]], false)
vim.cmd [[augroup packer_load_aucmds]]
@@ -313,7 +328,7 @@ vim.cmd [[au!]]
-- Event lazy-loads
time([[Defining lazy-load event autocommands]], true)
vim.cmd [[au InsertCharPre * ++once lua require("packer.load")({'nvim-autopairs'}, { event = "InsertCharPre *" }, _G.packer_plugins)]]
-vim.cmd [[au BufEnter * ++once lua require("packer.load")({'gitsigns.nvim', 'Comment.nvim', 'lualine.nvim', 'nvim-treesitter'}, { event = "BufEnter *" }, _G.packer_plugins)]]
+vim.cmd [[au BufEnter * ++once lua require("packer.load")({'Comment.nvim', 'lualine.nvim', 'nvim-treesitter', 'gitsigns.nvim'}, { event = "BufEnter *" }, _G.packer_plugins)]]
time([[Defining lazy-load event autocommands]], false)
vim.cmd("augroup END")