mirror of
https://github.com/gyoder/dots.git
synced 2026-02-27 17:03:45 +00:00
added existing nvim config
This commit is contained in:
parent
d6d6dab380
commit
bdf3cdecda
24 changed files with 996 additions and 0 deletions
4
vim/.config/nvim/lua/custom-lualine.lua
Normal file
4
vim/.config/nvim/lua/custom-lualine.lua
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
require('lualine').setup {
|
||||
options = { theme = "solarized_dark" }
|
||||
}
|
||||
|
||||
2
vim/.config/nvim/lua/diagnostics.lua
Normal file
2
vim/.config/nvim/lua/diagnostics.lua
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
vim.diagnostic.config({ virtual_text = true })
|
||||
|
||||
48
vim/.config/nvim/lua/native-lsp.lua
Normal file
48
vim/.config/nvim/lua/native-lsp.lua
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
vim.lsp.config('luals', {
|
||||
on_attach = function()
|
||||
print('luals is now active in this file')
|
||||
end,
|
||||
})
|
||||
if not string.match(vim.g.hostname, "cs.purdue.edu") then
|
||||
vim.lsp.enable("luals")
|
||||
end
|
||||
|
||||
|
||||
vim.lsp.config('pyright', {
|
||||
on_attach = function()
|
||||
print('pyright is now active in this file')
|
||||
end,
|
||||
})
|
||||
|
||||
vim.lsp.enable("pyright")
|
||||
|
||||
|
||||
vim.lsp.config('clangd', {
|
||||
on_attach = function()
|
||||
print('clangd is now active in this file')
|
||||
end,
|
||||
})
|
||||
|
||||
vim.lsp.enable("clangd")
|
||||
|
||||
vim.lsp.config('tailwind-ls', {
|
||||
on_attach = function()
|
||||
print('tailwind-ls is now active in this file')
|
||||
end,
|
||||
})
|
||||
|
||||
vim.lsp.enable("tailwind-ls")
|
||||
|
||||
vim.lsp.config('zls', {
|
||||
on_attach = function()
|
||||
print('zls is now active in this file')
|
||||
end,
|
||||
})
|
||||
|
||||
vim.lsp.enable("zls")
|
||||
|
||||
-- https://lsp-zero.netlify.app/blog/lsp-client-features.html
|
||||
|
||||
vim.opt.completeopt = {'menu', 'menuone', 'noselect', 'noinsert'}
|
||||
vim.opt.shortmess:append('c')
|
||||
|
||||
11
vim/.config/nvim/lua/plugins/blink_config.lua
Normal file
11
vim/.config/nvim/lua/plugins/blink_config.lua
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
require("blink.cmp").setup({
|
||||
fuzzy = {
|
||||
implementation = "prefer_rust",
|
||||
prebuilt_binaries = {
|
||||
download = true,
|
||||
force_version = 'v1.2.0',
|
||||
},
|
||||
},
|
||||
keymap = { preset = "enter" },
|
||||
})
|
||||
|
||||
157
vim/.config/nvim/lua/plugins/init.lua
Normal file
157
vim/.config/nvim/lua/plugins/init.lua
Normal file
|
|
@ -0,0 +1,157 @@
|
|||
vim.cmd [[packadd packer.nvim]]
|
||||
|
||||
local ensure_packer = function()
|
||||
local fn = vim.fn
|
||||
local install_path = fn.stdpath('data')..'/site/pack/packer/start/packer.nvim'
|
||||
if fn.empty(fn.glob(install_path)) > 0 then
|
||||
fn.system({'git', 'clone', '--depth', '1', 'https://github.com/wbthomason/packer.nvim', install_path})
|
||||
vim.cmd [[packadd packer.nvim]]
|
||||
return true
|
||||
end
|
||||
return false
|
||||
end
|
||||
|
||||
local packer_bootstrap = ensure_packer()
|
||||
|
||||
return require('packer').startup(function(use)
|
||||
use 'wbthomason/packer.nvim'
|
||||
|
||||
|
||||
|
||||
use {
|
||||
'maxmx03/solarized.nvim',
|
||||
config = function()
|
||||
vim.o.background = 'dark'
|
||||
---@type solarized
|
||||
local solarized = require('solarized')
|
||||
vim.o.termguicolors = true
|
||||
vim.o.background = 'dark'
|
||||
solarized.setup({})
|
||||
vim.cmd.colorscheme 'solarized'
|
||||
end
|
||||
}
|
||||
use {
|
||||
'nvim-telescope/telescope.nvim', tag = '0.1.x',
|
||||
requires = { {'nvim-lua/plenary.nvim'} }
|
||||
}
|
||||
|
||||
use {
|
||||
'nvim-treesitter/nvim-treesitter',
|
||||
config = function() require("plugins/ts") end
|
||||
}
|
||||
|
||||
use 'mbbill/undotree'
|
||||
use 'mfussenegger/nvim-lint'
|
||||
use {
|
||||
'nvim-lualine/lualine.nvim',
|
||||
requires = { 'nvim-tree/nvim-web-devicons', opt = true },
|
||||
config = function() require('plugins/lualine-config') end
|
||||
}
|
||||
use {
|
||||
'm4xshen/autoclose.nvim',
|
||||
config = function() require("autoclose").setup() end
|
||||
}
|
||||
|
||||
use {
|
||||
'CRAG666/betterTerm.nvim',
|
||||
config = function() require('betterTerm').setup() end
|
||||
}
|
||||
|
||||
use {
|
||||
'anurag3301/nvim-platformio.lua',
|
||||
requires = {
|
||||
{'akinsho/nvim-toggleterm.lua'},
|
||||
{'nvim-telescope/telescope.nvim'},
|
||||
{'nvim-lua/plenary.nvim'},
|
||||
},
|
||||
config = function()
|
||||
if not vim.g.is_purdue then
|
||||
require('platformio').setup({
|
||||
lsp = "clangd" --default: ccls, other option: clangd
|
||||
-- If you pick clangd, it also creates compile_commands.json
|
||||
})
|
||||
end
|
||||
end
|
||||
}
|
||||
|
||||
use {
|
||||
"chentoast/marks.nvim",
|
||||
config = function() require('plugins/marks-config') end
|
||||
}
|
||||
|
||||
use {
|
||||
"nvim-neo-tree/neo-tree.nvim",
|
||||
branch = "v3.x",
|
||||
requires = {
|
||||
"nvim-lua/plenary.nvim",
|
||||
"nvim-tree/nvim-web-devicons", -- not strictly required, but recommended
|
||||
"MunifTanjim/nui.nvim",
|
||||
-- "3rd/image.nvim", -- Optional image support in preview window: See `# Preview Mode` for more information
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
use { "nvim-tree/nvim-web-devicons" }
|
||||
use { "MunifTanjim/nui.nvim" }
|
||||
|
||||
use { 'rafamadriz/friendly-snippets' }
|
||||
use {
|
||||
'saghen/blink.cmp',
|
||||
run = 'cargo build --release',
|
||||
config = function()
|
||||
require("plugins/blink_config")
|
||||
end
|
||||
}
|
||||
|
||||
use {
|
||||
'f-person/git-blame.nvim',
|
||||
config = function ()
|
||||
require("gitblame").setup {
|
||||
gitblame_delay = 1
|
||||
}
|
||||
end
|
||||
}
|
||||
|
||||
use {
|
||||
'mrcjkb/rustaceanvim',
|
||||
config = function() require('plugins/rust-config') end
|
||||
}
|
||||
use {
|
||||
'pwntester/octo.nvim',
|
||||
requires = {
|
||||
'nvim-lua/plenary.nvim',
|
||||
'nvim-telescope/telescope.nvim',
|
||||
-- OR 'ibhagwan/fzf-lua',
|
||||
-- OR 'folke/snacks.nvim',
|
||||
'nvim-tree/nvim-web-devicons',
|
||||
},
|
||||
config = function ()
|
||||
require"octo".setup()
|
||||
end
|
||||
}
|
||||
|
||||
use {
|
||||
"NeogitOrg/neogit",
|
||||
config = function ()
|
||||
require("neogit").setup {}
|
||||
end
|
||||
}
|
||||
|
||||
use "mfussenegger/nvim-dap"
|
||||
use 'theHamsta/nvim-dap-virtual-text'
|
||||
use { "rcarriga/nvim-dap-ui", requires = {"mfussenegger/nvim-dap", "nvim-neotest/nvim-nio"} }
|
||||
|
||||
use 'wakatime/vim-wakatime'
|
||||
|
||||
use { "geigerzaehler/tree-sitter-jinja2" }
|
||||
|
||||
use "echasnovski/mini.base16"
|
||||
|
||||
|
||||
------------------------
|
||||
|
||||
if packer_bootstrap then
|
||||
require('packer').sync()
|
||||
end
|
||||
end)
|
||||
|
||||
4
vim/.config/nvim/lua/plugins/lualine-config.lua
Normal file
4
vim/.config/nvim/lua/plugins/lualine-config.lua
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
require('lualine').setup {
|
||||
options = { theme = "solarized" }
|
||||
}
|
||||
|
||||
36
vim/.config/nvim/lua/plugins/marks-config.lua
Normal file
36
vim/.config/nvim/lua/plugins/marks-config.lua
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
require'marks'.setup {
|
||||
-- whether to map keybinds or not. default true
|
||||
default_mappings = true,
|
||||
-- which builtin marks to show. default {}
|
||||
builtin_marks = { ".", "<", ">", "^" },
|
||||
-- whether movements cycle back to the beginning/end of buffer. default true
|
||||
cyclic = true,
|
||||
-- whether the shada file is updated after modifying uppercase marks. default false
|
||||
force_write_shada = false,
|
||||
-- how often (in ms) to redraw signs/recompute mark positions.
|
||||
-- higher values will have better performance but may cause visual lag,
|
||||
-- while lower values may cause performance penalties. default 150.
|
||||
refresh_interval = 250,
|
||||
-- sign priorities for each type of mark - builtin marks, uppercase marks, lowercase
|
||||
-- marks, and bookmarks.
|
||||
-- can be either a table with all/none of the keys, or a single number, in which case
|
||||
-- the priority applies to all marks.
|
||||
-- default 10.
|
||||
sign_priority = { lower=10, upper=15, builtin=8, bookmark=20 },
|
||||
-- disables mark tracking for specific filetypes. default {}
|
||||
excluded_filetypes = {},
|
||||
-- disables mark tracking for specific buftypes. default {}
|
||||
excluded_buftypes = {},
|
||||
-- marks.nvim allows you to configure up to 10 bookmark groups, each with its own
|
||||
-- sign/virttext. Bookmarks can be used to group together positions and quickly move
|
||||
-- across multiple buffers. default sign is '!@#$%^&*()' (from 0 to 9), and
|
||||
-- default virt_text is "".
|
||||
bookmark_0 = {
|
||||
sign = "⚑",
|
||||
virt_text = "hello world",
|
||||
-- explicitly prompt for a virtual line annotation when setting a bookmark from this group.
|
||||
-- defaults to false.
|
||||
annotate = false,
|
||||
},
|
||||
mappings = {}
|
||||
}
|
||||
30
vim/.config/nvim/lua/plugins/rust-config.lua
Normal file
30
vim/.config/nvim/lua/plugins/rust-config.lua
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
local bufnr = vim.api.nvim_get_current_buf()
|
||||
vim.keymap.set(
|
||||
"n",
|
||||
"<leader>a",
|
||||
function()
|
||||
vim.cmd.RustLsp('codeAction') -- supports rust-analyzer's grouping
|
||||
-- or vim.lsp.buf.codeAction() if you don't want grouping.
|
||||
end,
|
||||
{ silent = true, buffer = bufnr }
|
||||
)
|
||||
vim.keymap.set(
|
||||
"n",
|
||||
"K", -- Override Neovim's built-in hover keymap with rustaceanvim's hover actions
|
||||
function()
|
||||
vim.cmd.RustLsp({'hover', 'actions'})
|
||||
end,
|
||||
{ silent = true, buffer = bufnr }
|
||||
)
|
||||
|
||||
vim.g.rustaceanvim = {
|
||||
server = {
|
||||
settings = {
|
||||
["rust-analyzer"] = {
|
||||
checkOnSave = {
|
||||
command = "clippy",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
41
vim/.config/nvim/lua/plugins/ts.lua
Normal file
41
vim/.config/nvim/lua/plugins/ts.lua
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
require'nvim-treesitter.configs'.setup {
|
||||
-- A list of parser names, or "all" (the listed parsers MUST always be installed)
|
||||
ensure_installed = { "c", "lua", "vim", "vimdoc", "query", "markdown", "markdown_inline" },
|
||||
|
||||
-- Install parsers synchronously (only applied to `ensure_installed`)
|
||||
sync_install = false,
|
||||
|
||||
-- Automatically install missing parsers when entering buffer
|
||||
-- Recommendation: set to false if you don't have `tree-sitter` CLI installed locally
|
||||
auto_install = true,
|
||||
|
||||
-- List of parsers to ignore installing (or "all")
|
||||
-- ignore_install = { "javascript" },
|
||||
|
||||
---- If you need to change the installation directory of the parsers (see -> Advanced Setup)
|
||||
-- parser_install_dir = "/some/path/to/store/parsers", -- Remember to run vim.opt.runtimepath:append("/some/path/to/store/parsers")!
|
||||
|
||||
highlight = {
|
||||
enable = true,
|
||||
|
||||
-- NOTE: these are the names of the parsers and not the filetype. (for example if you want to
|
||||
-- disable highlighting for the `tex` filetype, you need to include `latex` in this list as this is
|
||||
-- the name of the parser)
|
||||
-- list of language that will be disabled
|
||||
-- disable = { "c", "rust" },
|
||||
-- Or use a function for more flexibility, e.g. to disable slow treesitter highlight for large files
|
||||
disable = function(lang, buf)
|
||||
local max_filesize = 100 * 1024 -- 100 KB
|
||||
local ok, stats = pcall(vim.loop.fs_stat, vim.api.nvim_buf_get_name(buf))
|
||||
if ok and stats and stats.size > max_filesize then
|
||||
return true
|
||||
end
|
||||
end,
|
||||
|
||||
-- Setting this to true will run `:h syntax` and tree-sitter at the same time.
|
||||
-- Set this to `true` if you depend on 'syntax' being enabled (like for indentation).
|
||||
-- Using this option may slow down your editor, and you may see some duplicate highlights.
|
||||
-- Instead of true it can also be a list of languages
|
||||
additional_vim_regex_highlighting = false,
|
||||
},
|
||||
}
|
||||
77
vim/.config/nvim/lua/remap.lua
Normal file
77
vim/.config/nvim/lua/remap.lua
Normal file
|
|
@ -0,0 +1,77 @@
|
|||
vim.g.mapleader = "\\"
|
||||
vim.keymap.set("n", "<leader>\\", ":nohlsearch<CR>")
|
||||
|
||||
vim.keymap.set("n", "<leader>vv", ":vsplit<CR>")
|
||||
vim.keymap.set("n", "<leader>vt", ":tabnew<CR>")
|
||||
|
||||
-- easier to move windows
|
||||
vim.keymap.set("n", "`h", "<C-w>h")
|
||||
vim.keymap.set("n", "`j", "<C-w>j")
|
||||
vim.keymap.set("n", "`k", "<C-w>k")
|
||||
vim.keymap.set("n", "`l", "<C-w>l")
|
||||
|
||||
vim.keymap.set("n", "<leader>qr", vim.lsp.buf.rename)
|
||||
vim.keymap.set("n", "<leader>qf", vim.lsp.buf.format)
|
||||
vim.keymap.set("n", "<leader>dd", vim.diagnostic.open_float)
|
||||
|
||||
-------- PLUGINS -------
|
||||
|
||||
-- Telescope
|
||||
local ts_builtins = require('telescope.builtin')
|
||||
vim.keymap.set('n', '<leader>ff', ts_builtins.find_files, { desc = 'Telescope find files' })
|
||||
vim.keymap.set('n', '<leader>fg', ts_builtins.git_files, { desc = 'Telescope find git files' })
|
||||
vim.keymap.set('n', '<leader>fb', ts_builtins.buffers, { desc = 'Telescope buffers' })
|
||||
vim.keymap.set('n', '<leader>fh', ts_builtins.help_tags, { desc = 'Telescope help tags' })
|
||||
vim.keymap.set('n', '<leader>fs', ts_builtins.lsp_workspace_symbols, { desc = 'Telescope find symbols' })
|
||||
vim.keymap.set('n', '<leader>fts', ts_builtins.treesitter, { desc = 'Telescope find treesitter' })
|
||||
vim.keymap.set('n', '<leader>fd', ts_builtins.lsp_definitions, { desc = 'Telescope find definition' })
|
||||
vim.keymap.set('n', '<leader>ftd', ts_builtins.lsp_type_definitions, { desc = 'Telescope find type definition' })
|
||||
|
||||
-- Undo Tree
|
||||
vim.keymap.set('n', '<leader>u', vim.cmd.UndotreeToggle)
|
||||
|
||||
-- Better Term
|
||||
|
||||
local betterTerm = require('betterTerm')
|
||||
-- toggle firts term
|
||||
vim.keymap.set({"n", "t"}, "<leader>tt", betterTerm.open, { desc = "Open terminal"})
|
||||
-- Select term focus
|
||||
-- vim.keymap.set({"n"}, "<leader>tf", betterTerm.select, { desc = "Select terminal"})
|
||||
-- Create new term
|
||||
local current = 2
|
||||
vim.keymap.set(
|
||||
{"n"}, "<leader>tn",
|
||||
function()
|
||||
betterTerm.open(current)
|
||||
current = current + 1
|
||||
end,
|
||||
{ desc = "New terminal"}
|
||||
)
|
||||
|
||||
-- Neotree
|
||||
|
||||
local ntc = require('neo-tree.command')
|
||||
vim.keymap.set('n', '<C-b>', function()
|
||||
local reveal_file = vim.fn.expand('%:p')
|
||||
if (reveal_file == '') then
|
||||
reveal_file = vim.fn.getcwd()
|
||||
else
|
||||
local f = io.open(reveal_file, "r")
|
||||
if (f) then
|
||||
f.close(f)
|
||||
else
|
||||
reveal_file = vim.fn.getcwd()
|
||||
end
|
||||
end
|
||||
ntc.execute({
|
||||
action = "focus", -- OPTIONAL, this is the default value
|
||||
source = "filesystem", -- OPTIONAL, this is the default value
|
||||
position = "right", -- OPTIONAL, this is the default value
|
||||
reveal_file = reveal_file, -- path to file or folder to reveal
|
||||
reveal_force_cwd = true, -- change cwd without asking if needed
|
||||
toggle = true,
|
||||
}) end,
|
||||
{ desc = "Show Sidebar" }
|
||||
)
|
||||
|
||||
|
||||
12
vim/.config/nvim/lua/standard-lint.lua
Normal file
12
vim/.config/nvim/lua/standard-lint.lua
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
vim.api.nvim_create_autocmd({ "BufEnter", "BufWritePost", "InsertLeave", "TextChanged" }, {
|
||||
callback = function()
|
||||
|
||||
-- try_lint without arguments runs the linters defined in `linters_by_ft`
|
||||
-- for the current filetype
|
||||
require("lint").try_lint()
|
||||
|
||||
-- You can call `try_lint` with a linter name or a list of names to always
|
||||
-- run specific linters, independent of the `linters_by_ft` configuration
|
||||
-- require("lint").try_lint("cspell")
|
||||
end,
|
||||
})
|
||||
20
vim/.config/nvim/lua/westwood-lint.lua
Normal file
20
vim/.config/nvim/lua/westwood-lint.lua
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
local lint = require("lint")
|
||||
|
||||
local errorformat = "%WWARNING: %m,%Z%\\s%\\s%\\s%\\s%\\s%\\s%\\s%\\s%\\sat (stdin) from line %l column %c to line %e column %k"
|
||||
lint.linters.westwood = {
|
||||
cmd = '/homes/kkasad/share/westwood',
|
||||
stdin = true,
|
||||
args = {'-f', 'machine', '-'},
|
||||
stream = both,
|
||||
ignore_exitcode = false,
|
||||
env = nil,
|
||||
parser = require('lint.parser').from_errorformat(errorformat)
|
||||
}
|
||||
|
||||
lint.linters_by_ft.c = {"westwood", "clangtidy"}
|
||||
lint.linters_by_ft.cpp = {"westwood"}
|
||||
vim.list_extend(lint.linters_by_ft.c, { "westwood", "clangtidy" })
|
||||
vim.list_extend(lint.linters_by_ft.cpp, { "westwood" })
|
||||
|
||||
local ns = lint.get_namespace("westwood")
|
||||
vim.diagnostic.config({ virtual_text = true }, ns)
|
||||
Loading…
Add table
Add a link
Reference in a new issue