Compare commits

...

10 commits

Author SHA1 Message Date
8c2ab48ed5 lapconfig: fix half-baked rename
Some checks failed
Send submodule updates to parent repo / update (main) (push) Has been cancelled
Send submodule updates to parent repo / update (tiling) (push) Has been cancelled
2025-02-01 22:01:10 +01:00
db54c6be3a treesitter: add css support in vue files 2025-01-26 19:30:13 +01:00
e02b5d9e03 lspconfig: fix vue lsp 2025-01-26 19:26:48 +01:00
49015143c5 colorscheme: improve selection of colorscheme 2025-01-20 15:57:43 +01:00
40fa8c3ade vim: add scrolloff 2024-11-04 11:11:43 +01:00
8197dd257d nvim: move vim opts to separate file 2024-11-01 23:15:13 +01:00
f141c8937a lazy: split neovim-lspconfig plugin 2024-11-01 23:14:18 +01:00
afdc9169ae lazy: split mason plugins 2024-11-01 23:13:35 +01:00
60c9579bab lazy: split completion plugins 2024-11-01 23:13:03 +01:00
a6e02d4c04 lazy: split treesitter plugin 2024-11-01 23:12:38 +01:00
7 changed files with 141 additions and 80 deletions

View file

@ -1,11 +1,4 @@
vim.opt.number = true
vim.opt.expandtab = true
vim.opt.number = true
vim.opt.tabstop = 2
vim.opt.softtabstop = 2
vim.opt.shiftwidth = 2
vim.opt.title = true
vim.opt.whichwrap = "<,>,[,]"
require("vim-options")
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
@ -18,77 +11,9 @@ if not vim.loop.fs_stat(lazypath) then
lazypath,
})
end
vim.opt.rtp:prepend(lazypath)
local plugins = {
{ "rebelot/kanagawa.nvim", name = "kanagawa", priority = 1000 },
{
"nvim-telescope/telescope.nvim", tag = "0.1.8",
dependencies = { "nvim-lua/plenary.nvim" }
},
{ "nvim-treesitter/nvim-treesitter", build = ":TSUpdate" },
{ "williamboman/mason.nvim" },
{ "williamboman/mason-lspconfig.nvim" },
{ "neovim/nvim-lspconfig" },
{ "hrsh7th/nvim-cmp" },
{ "hrsh7th/cmp-nvim-lsp" },
}
require("lazy").setup(plugins, {})
vim.cmd.colorscheme "kanagawa-dragon"
local builtin = require("telescope.builtin")
local configs = require("nvim-treesitter.configs")
configs.setup({
ensure_installed = { "asm", "c", "javascript", "latex", "lua", "matlab", "meson", "sql", "toml", "typescript", "verilog", "vue" },
highlight = { enable = true },
indent = { enable = true }
require("lazy").setup({
spec = "plugins"
})
require("mason").setup()
require("mason-lspconfig").setup({
ensure_installed = { "clangd", "texlab", "lua_ls", "matlab_ls", "mesonlsp", "sqlls", "svlangserver", "ts_ls", "volar" }
})
local lspconfig = require("lspconfig")
lspconfig.clangd.setup({
cmd = { "clangd", "-header-insertion=never" },
})
lspconfig.lua_ls.setup({})
lspconfig.matlab_ls.setup({})
lspconfig.mesonlsp.setup({})
lspconfig.sqlls.setup({})
lspconfig.svlangserver.setup({})
lspconfig.texlab.setup({})
lspconfig.ts_ls.setup({})
lspconfig.volar.setup({})
local cmp = require("cmp")
cmp.setup({
window = {
completion = cmp.config.window.bordered(),
documentation = cmp.config.window.bordered(),
},
mapping = cmp.mapping.preset.insert({
["<C-b>"] = cmp.mapping.scroll_docs(-4),
["<C-f>"] = cmp.mapping.scroll_docs(4),
["<C-Space>"] = cmp.mapping.complete(),
["<C-e>"] = cmp.mapping.abort(),
["<CR>"] = cmp.mapping.confirm({ select = true }),
}),
sources = cmp.config.sources({
{ name = "nvim_lsp" },
}),
})
vim.keymap.set("n", "T", function() vim.lsp.buf.definition() end, {})
vim.keymap.set("n", "K", function() vim.lsp.buf.hover() end, {})
vim.keymap.set("n", "J", function() vim.lsp.buf.type_definition() end, {})
vim.keymap.set("n", "C", function() vim.lsp.buf.code_action() end, {})
vim.keymap.set("n", "<C-p>", builtin.find_files, {})
vim.keymap.set("n", "<C-f>", builtin.live_grep, {})

View file

@ -4,6 +4,12 @@ return {
priority = 1000,
config = function ()
vim.cmd("colorscheme kanagawa-dragon")
local conf = require("kanagawa")
conf.setup({
theme = "dragon"
})
vim.cmd("colorscheme kanagawa")
end
}

View file

@ -0,0 +1,29 @@
return {
{
"hrsh7th/cmp-nvim-lsp"
},
{
"hrsh7th/nvim-cmp",
config = function()
local cmp = require("cmp")
cmp.setup({
window = {
completion = cmp.config.window.bordered(),
documentation = cmp.config.window.bordered()
},
mapping = cmp.mapping.preset.insert({
["<C-b>"] = cmp.mapping.scroll_docs(-4),
["<C-f>"] = cmp.mapping.scroll_docs(4),
["<C-Space>"] = cmp.mapping.complete(),
["<C-e>"] = cmp.mapping.abort(),
["<CR>"] = cmp.mapping.confirm({ select = true }),
}),
sources = cmp.config.sources({
{ name = "nvim_lsp" }
})
})
end
}
}

20
lua/plugins/lsp.lua Normal file
View file

@ -0,0 +1,20 @@
return {
{
"williamboman/mason.nvim",
config = function()
require("mason").setup()
end
},
{
"williamboman/mason-lspconfig.nvim",
config = function()
local mason_lspconfig = require("mason")
mason_lspconfig.setup({
ensure_installed = { "clangd", "texlab", "lua_ls", "matlab_ls", "mesonlsp", "sqlls", "svlangserver", "ts_ls", "volar" }
})
end
}
}

33
lua/plugins/lspconfig.lua Normal file
View file

@ -0,0 +1,33 @@
return {
"neovim/nvim-lspconfig",
config = function()
local lspconfig = require("lspconfig")
local mason_registry = require("mason-registry")
local volar_path = mason_registry.get_package("vue-language-server"):get_install_path() .. "/node_modules/@vue/language-server"
lspconfig.clangd.setup({
cmd = { "clangd", "-header-insertion=never" },
})
lspconfig.lua_ls.setup({})
lspconfig.matlab_ls.setup({})
lspconfig.mesonlsp.setup({})
lspconfig.sqlls.setup({})
lspconfig.svlangserver.setup({})
lspconfig.texlab.setup({})
lspconfig.ts_ls.setup({
init_options = {
plugins = {
{
name = "@vue/typescript-plugin",
location = volar_path,
languages = { "vue" },
},
},
},
filetypes = { "typescript", "javascript", "javascriptreact", "typescriptreact", "vue" },
})
lspconfig.volar.setup({})
end
}

View file

@ -0,0 +1,14 @@
return {
"nvim-treesitter/nvim-treesitter",
build = ":TSUpdate",
config = function()
local config = require("nvim-treesitter.configs")
config.setup({
ensure_installed = { "asm", "c", "css", "javascript", "latex", "lua", "matlab", "meson", "sql", "toml", "typescript", "verilog", "vue" },
highlight = { enable = true },
indent = { enable = true }
})
end
}

34
lua/vim-options.lua Normal file
View file

@ -0,0 +1,34 @@
vim.o.background = ""
vim.cmd("set number")
vim.cmd("set expandtab")
vim.cmd("set tabstop=2")
vim.cmd("set scrolloff=4")
vim.cmd("set softtabstop=2")
vim.cmd("set shiftwidth=2")
vim.cmd("set title")
vim.keymap.set("n", "T", function() vim.lsp.buf.definition() end, {})
vim.keymap.set("n", "K", function() vim.lsp.buf.hover() end, {})
vim.keymap.set("n", "J", function() vim.lsp.buf.type_definition() end, {})
vim.keymap.set("n", "C", function() vim.lsp.buf.code_action() end, {})
local prettier = function()
local clients = vim.lsp.get_active_clients()
for _, client in pairs(clients) do
if (client.name == "svelte") then
local path = vim.api.nvim_buf_get_name(0):gsub("%(", "\\("):gsub("%)", "\\)")
local command = "npx prettier --write " .. path
vim.system(vim.split(command, " ")):wait()
vim.cmd("e")
end
if (client.name == "texlab") then
local path = vim.api.nvim_buf_get_name(0):gsub("%(", "\\("):gsub("%)", "\\)")
local command = "pdflatex " .. path
vim.system(vim.split(command, " ")):wait()
print("Done")
end
end
end
vim.keymap.set("n", "<C-T>", function() prettier() end, {})