aboutsummaryrefslogtreecommitdiff
path: root/neovim/.config/nvim/lua
diff options
context:
space:
mode:
Diffstat (limited to 'neovim/.config/nvim/lua')
-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
13 files changed, 152 insertions, 32 deletions
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",