neovim update

This commit is contained in:
Bryan Ramos 2024-05-12 10:45:09 -04:00
parent 9de3bbf0ec
commit b3714ed696
Signed by: bryan
GPG key ID: 6ABDCD144D6643C8
11 changed files with 12 additions and 16 deletions

View file

@ -5,7 +5,6 @@
./corn
./fun
./utils
./neovim
./writing
];
}

View file

@ -1,2 +0,0 @@
-- bootstrap lazy.nvim, LazyVim and your plugins
require("config.lazy")

View file

@ -1,187 +0,0 @@
-- Autocmds are automatically loaded on the VeryLazy event
-- Default autocmds that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/autocmds.lua
-- Add any additional autocmds here
vim.g.autoformat = false
vim.cmd([[
au BufRead,BufNewFile *.purs set filetype=purescript
]])
require("which-key").register({
w = {
d = {
"<cmd>bd<CR> | close<CR>",
"Delete window and buffer"
},
D = {
"<cmd>close<CR>",
"Delete window only",
},
},
t = {
"<cmd>:new | setlocal nonumber norelativenumber | resize 10 | set winfixheight | terminal<CR>",
"Open Terminal",
},
}, {
prefix = "<leader>",
})
require("notify").setup({
background_colour = "#000000",
})
local lsp = require("lsp-zero").preset({})
--require("null-ls").setup({
-- -- you can reuse a shared lspconfig on_attach callback here
-- on_attach = function(client, bufnr)
-- if client.supports_method("textDocument/formatting") then
-- vim.api.nvim_clear_autocmds({ group = vim.api.nvim_create_augroup("LspFormatting", {}), buffer = bufnr })
-- vim.api.nvim_create_autocmd("BufWritePre", {
-- group = augroup,
-- buffer = bufnr,
-- callback = function()
-- vim.lsp.buf.format({
-- bufnr = bufnr,
-- filter = function(client)
-- return client.name == "null-ls"
-- end,
-- })
-- vim.lsp.buf.formatting_sync()
-- end,
-- })
-- end
-- end,
--})
-- https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md
lsp.setup_servers({
--"tsserver",
"hls",
"pyright",
"nil_ls",
"cssls",
"html",
"jsonls",
"diagnosticls",
"lua_ls",
"marksman",
"purescriptls",
"tailwindcss",
"bashls",
"dhall_lsp_server",
"volar",
"clangd",
})
require("lspconfig").lua_ls.setup(lsp.nvim_lua_ls())
lsp.setup()
local cmp_nvim_lsp = require "cmp_nvim_lsp"
require("lspconfig").clangd.setup {
on_attach = on_attach,
capabilities = cmp_nvim_lsp.default_capabilities(),
cmd = {
"clangd",
"--offset-encoding=utf-16",
},
}
require("lspconfig").volar.setup({
filetypes = { "typescript", "javascript", "javascriptreact", "typescriptreact", "vue", "json" },
})
require("lspconfig").nil_ls.setup {
settings = {
["nil"] = {
nix = {
flake = {
autoArchive = true,
}
}
}
}
}
local cmp = require("cmp")
cmp.setup({
snippet = {
expand = function(args)
require("luasnip").lsp_expand(args.body)
end,
},
sources = {
{ name = "nvim_lsp" },
{ name = "luasnip" },
-- other sources...
},
formatting = {
format = function(entry, vim_item)
vim_item.menu = ""
return vim_item
end,
},
-- other configurations...
})
cmp.setup({
enabled = function()
-- disable completion in comments
local context = require("cmp.config.context")
-- keep command mode completion enabled when cursor is in a comment
if vim.api.nvim_get_mode().mode == "c" then
return true
else
return not context.in_treesitter_capture("comment") and not context.in_syntax_group("comment")
end
end,
mapping = {
["<C-p>"] = cmp.mapping.select_prev_item(),
["<C-n>"] = cmp.mapping.select_next_item(),
-- ["<Down>"] = cmp.mapping.select_next_item(),
-- ["<Up>"] = cmp.mapping.select_prev_item(),
["<C-d>"] = cmp.mapping.scroll_docs(-4),
["<C-f>"] = cmp.mapping.scroll_docs(4),
["<Tab>"] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_next_item()
elseif cmp.completed then
cmp.confirm({ select = true })
else
fallback()
end
end, { "i", "s" }),
["<S-Tab>"] = cmp.mapping.select_prev_item(),
["<CR>"] = cmp.mapping(function(fallback)
fallback()
end, { "i", "s" }),
},
})
local dap = require("dap")
dap.adapters.haskell = {
type = "executable",
command = "haskell-debug-adapter",
args = { "--hackage-version=0.0.33.0" },
}
dap.configurations.haskell = {
{
type = "haskell",
request = "launch",
name = "Debug",
workspace = "${workspaceFolder}",
startup = "${file}",
stopOnEntry = true,
logFile = vim.fn.stdpath("data") .. "/haskell-dap.log",
logLevel = "WARNING",
ghciEnv = vim.empty_dict(),
ghciPrompt = "λ: ",
-- Adjust the prompt to the prompt you see when you invoke the ghci command below
ghciInitialPrompt = "λ: ",
ghciCmd = "stack ghci --test --no-load --no-build --main-is TARGET --ghci-options -fprint-evld-with-show",
},
}

View file

@ -1,8 +0,0 @@
-- Keymaps are automatically loaded on the VeryLazy event
-- Default keymaps that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/keymaps.lua
-- Add any additional keymaps here
vim.keymap.set("n", "<C-U>", "<C-U>zz", { silent = true })
vim.keymap.set("n", "<C-D>", "<C-D>zz", { silent = true })
vim.keymap.set("n", "H", ":bprev<CR>", { silent = true })
vim.keymap.set("n", "L", ":bnext<CR>", { silent = true })

View file

@ -1,44 +0,0 @@
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
-- bootstrap lazy.nvim
-- stylua: ignore
vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", "--branch=stable", lazypath })
end
vim.opt.rtp:prepend(vim.env.LAZY or lazypath)
require("lazy").setup({
spec = {
-- add LazyVim and import its plugins
{ "LazyVim/LazyVim", import = "lazyvim.plugins" },
-- import any extras modules here
{ import = "lazyvim.plugins.extras.dap.core" },
-- import/override with your plugins
{ import = "plugins" },
},
defaults = {
-- By default, only LazyVim plugins will be lazy-loaded. Your custom plugins will load during startup.
-- If you know what you're doing, you can set this to `true` to have all your custom plugins lazy-loaded by default.
lazy = false,
-- It's recommended to leave version=false for now, since a lot the plugin that support versioning,
-- have outdated releases, which may break your Neovim install.
version = false, -- always use the latest git commit
-- version = "*", -- try installing the latest stable version for plugins that support semver
},
install = { colorscheme = { "github-theme" } },
checker = { enabled = true }, -- automatically check for plugin updates
performance = {
rtp = {
-- disable some rtp plugins
disabled_plugins = {
"gzip",
-- "matchit",
-- "matchparen",
-- "netrwPlugin",
"tarPlugin",
"tohtml",
"tutor",
"zipPlugin",
},
},
},
})

View file

@ -1,29 +0,0 @@
-- Options are automatically loaded before lazy.nvim startup
-- Default options that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/options.lua
-- Add any additional options here
vim.opt.tabstop = 2
vim.opt.shiftwidth = 2
vim.opt.softtabstop = 2
vim.opt.expandtab = true
vim.opt.smartindent = true
vim.cmd([[
autocmd FileType python setlocal tabstop=4 shiftwidth=4 softtabstop=4
]])
vim.cmd([[
autocmd FileType haskell setlocal tabstop=4 shiftwidth=4 softtabstop=4
]])
vim.opt.ignorecase = true
vim.opt.smartcase = true
vim.opt.swapfile = false
vim.opt.backup = false
vim.opt.undofile = true
vim.o.termguicolors = true
vim.opt.guicursor = "n-v-c:block,i:block,r:block"
vim.cmd [[highlight PmenuSel guifg=#53565d guibg=#f0c981]]

View file

@ -1,102 +0,0 @@
return {
{
"olimorris/onedarkpro.nvim",
lazy = false,
priority = 1000,
config = function()
require("onedarkpro").setup({
colors = {
bg = "#000000",
fg = "#abb2bf",
red = "#ef596f",
orange = "#d19a66",
yellow = "#e5c07b",
green = "#89ca78",
cyan = "#2bbac5",
blue = "#61afef",
purple = "#d55fde",
white = "#abb2bf",
black = "#000000",
gray = "#434852",
highlight = "#e2be7d",
comment = "#7f848e",
none = "NONE",
},
options = {
transparency = true,
},
})
vim.cmd("colorscheme onedark_dark")
end,
},
{
"VonHeikemen/lsp-zero.nvim",
branch = "v2.x",
dependencies = {
{ "neovim/nvim-lspconfig" },
{ "hrsh7th/nvim-cmp" },
{ "hrsh7th/cmp-buffer" },
{ "hrsh7th/cmp-path" },
{ "hrsh7th/cmp-nvim-lsp" },
{ "L3MON4D3/LuaSnip" },
},
},
--[[
{
"jackMort/ChatGPT.nvim",
event = "VeryLazy",
config = function()
require("chatgpt").setup({
api_key_cmd = "pass show api/chatgpt-apikey",
})
end,
dependencies = {
"MunifTanjim/nui.nvim",
"nvim-lua/plenary.nvim",
"nvim-telescope/telescope.nvim",
},
},
]]
{
"nvim-treesitter/nvim-treesitter-context",
config = function()
require("treesitter-context").setup({
enable = true, -- Enable this plugin (Can be enabled/disabled later via commands)
max_lines = 0, -- How many lines the window should span. Values <= 0 mean no limit.
min_window_height = 0, -- Minimum editor window height to enable context. Values <= 0 mean no limit.
line_numbers = false,
multiline_threshold = 20, -- Maximum number of lines to collapse for a single context line
trim_scope = "outer", -- Which context lines to discard if `max_lines` is exceeded. Choices: 'inner', 'outer'
mode = "cursor", -- Line used to calculate context. Choices: 'cursor', 'topline'
-- Separator between context and content. Should be a single character string, like '-'.
-- When separator is set, the context will only show up when there are at least 2 lines above cursorline.
separator = "-",
zindex = 20, -- The Z-index of the context window
on_attach = nil, -- (fun(buf: integer): boolean) return false to disable attaching
})
end,
},
{
"nvim-neo-tree/neo-tree.nvim",
config = function()
require("neo-tree").setup({
window = {
position = "left",
width = 20,
},
})
end,
},
{ "williamboman/mason.nvim", enabled = false },
{ "williamboman/mason-lspconfig.nvim", enabled = false },
{ "jay-babu/mason-nvim-dap.nvim", enabled = false },
{ "catppuccin/nvim", enabled = false },
{ "folke/flash.nvim", enabled = false }
}

View file

@ -1,24 +0,0 @@
{ pkgs, ... }:
let
lsp = with pkgs; [
nil nixfmt
marksman shfmt
sumneko-lua-language-server stylua
haskell-language-server hlint
nodePackages."@tailwindcss/language-server"
dhall-lsp-server
];
lsp' = with pkgs.nodePackages; [
vscode-langservers-extracted
typescript-language-server
bash-language-server
diagnostic-languageserver
pyright
purescript-language-server
volar
];
in
lsp ++ lsp'

View file

@ -1,27 +0,0 @@
{ pkgs, lib, config, ... }:
with lib;
let
cfg = config.modules.user.gui.neovim;
in
{ options.modules.user.gui.neovim = { enable = mkEnableOption "user.gui.neovim"; };
config = mkIf cfg.enable {
programs.neovim = {
enable = true;
defaultEditor = true;
vimAlias = true;
vimdiffAlias = true;
extraPackages = import ./config/servers.nix { inherit pkgs; };
};
home.file.".config/nvim" = {
source = ./config/lazyvim;
recursive = true;
};
home.packages = with pkgs; [
lazygit
#gcc
];
};
}