Add neovim config
This commit is contained in:
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
nvim/lazylock.json
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
# dotfiles
|
# dotfiles
|
||||||
My dotfiles including Hyprland, Aylur's GTK Shell, Anyrun, and Starship.
|
My dotfiles including Hyprland, Aylur's GTK Shell, Rofi, Neovim, and Starship.
|
||||||
|
|||||||
136
nvim/init.lua
Normal file
136
nvim/init.lua
Normal file
@@ -0,0 +1,136 @@
|
|||||||
|
require('config.lazy')
|
||||||
|
|
||||||
|
local capabilities = require('cmp_nvim_lsp').default_capabilities()
|
||||||
|
|
||||||
|
-- Set up lspconfig.
|
||||||
|
local lspconfig = require('lspconfig')
|
||||||
|
local servers = { 'jdtls', 'rust_analyzer', 'csharp_ls', 'html', 'marksman', 'ts_ls', 'clangd', 'cssls', 'tinymist'}
|
||||||
|
for _, lsp in ipairs(servers) do
|
||||||
|
lspconfig[lsp].setup {
|
||||||
|
capabilities = capabilities,
|
||||||
|
}
|
||||||
|
end
|
||||||
|
lspconfig.pylsp.setup({settings={pylsp={plugins={pylint={enabled = true,}}}}})
|
||||||
|
|
||||||
|
local cmp = require('cmp')
|
||||||
|
cmp.setup({
|
||||||
|
snippet = {
|
||||||
|
expand = function(args)
|
||||||
|
vim.fn["vsnip#anonymous"](args.body)
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
window = {
|
||||||
|
completion = cmp.config.window.bordered(),
|
||||||
|
documentation = cmp.config.window.bordered(),
|
||||||
|
},
|
||||||
|
-- formatting = {
|
||||||
|
-- format = require('lspkind').cmp_format(),
|
||||||
|
-- },
|
||||||
|
mapping = cmp.mapping.preset.insert({
|
||||||
|
['<CR>'] = cmp.mapping.confirm {
|
||||||
|
behavior = cmp.ConfirmBehavior.Replace,
|
||||||
|
select = true,
|
||||||
|
},
|
||||||
|
}),
|
||||||
|
sources = cmp.config.sources({
|
||||||
|
{ name = 'nvim_lsp' },
|
||||||
|
{ name = 'vsnip' },
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
require('autoclose').setup{}
|
||||||
|
|
||||||
|
require('lualine').setup {
|
||||||
|
options = {
|
||||||
|
icons_enabled = true,
|
||||||
|
theme = 'auto',
|
||||||
|
component_separators = { left = '', right = ''},
|
||||||
|
section_separators = { left = '', right = ''},
|
||||||
|
disabled_filetypes = {
|
||||||
|
statusline = {},
|
||||||
|
winbar = {},
|
||||||
|
},
|
||||||
|
ignore_focus = {},
|
||||||
|
always_divide_middle = true,
|
||||||
|
globalstatus = false,
|
||||||
|
refresh = {
|
||||||
|
statusline = 1000,
|
||||||
|
tabline = 1000,
|
||||||
|
winbar = 1000,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
sections = {
|
||||||
|
lualine_a = {{'mode', separator = {left = '', right = ''}, padding = 0}},
|
||||||
|
lualine_b = {'branch'},
|
||||||
|
lualine_c = {'diagnostics'},
|
||||||
|
lualine_x = {},
|
||||||
|
lualine_y = {'filetype'},
|
||||||
|
lualine_z = {{'filename', separator = {left = '', right = ''}, padding = 0}}
|
||||||
|
},
|
||||||
|
tabline = {},
|
||||||
|
winbar = {},
|
||||||
|
inactive_winbar = {},
|
||||||
|
extensions = {}
|
||||||
|
}
|
||||||
|
|
||||||
|
require('presence').setup({
|
||||||
|
neovim_image_text = 'Because emacs was too intimidating',
|
||||||
|
editing_text = 'Typing away...',
|
||||||
|
reading_text = 'Reading the man pages'
|
||||||
|
})
|
||||||
|
|
||||||
|
require('screenkey').setup{}
|
||||||
|
|
||||||
|
vim.keymap.set({'n', 'x', 'o'}, 'z', vim.diagnostic.open_float)
|
||||||
|
vim.keymap.set({'n', 'x', 'o', 'i'}, '<c-s>', "<cmd>up<cr>")
|
||||||
|
|
||||||
|
|
||||||
|
if vim.g.neovide then
|
||||||
|
vim.o.guifont = 'ComicShannsMono Nerd Font:h14'
|
||||||
|
vim.g.neovide_transparency = 0.85
|
||||||
|
vim.g.neovide_cursor_animation_length = 0.05
|
||||||
|
vim.g.neovide_cursor_trail_size = 0.5
|
||||||
|
end
|
||||||
|
|
||||||
|
vim.cmd([[
|
||||||
|
no e <c-r>
|
||||||
|
|
||||||
|
no a i
|
||||||
|
no i a
|
||||||
|
no A I
|
||||||
|
no I A
|
||||||
|
no k o
|
||||||
|
no <c-f> /
|
||||||
|
ino <c-v> <esc><c-v>
|
||||||
|
|
||||||
|
no h <left>
|
||||||
|
no t <up>
|
||||||
|
no n <down>
|
||||||
|
no s <right>
|
||||||
|
no / ^
|
||||||
|
no = <end>
|
||||||
|
|
||||||
|
no <c-h> <esc>
|
||||||
|
ino <c-h> <esc>
|
||||||
|
no <c-t> :
|
||||||
|
ino <c-t> <c-o>:
|
||||||
|
cno <c-h> <esc>
|
||||||
|
nn <c-b> :bn<enter>
|
||||||
|
nn <c-u> :UndotreeToggle<enter>
|
||||||
|
|
||||||
|
ino <c-bs> <c-w>
|
||||||
|
no j J
|
||||||
|
nn <enter> :noh<enter>
|
||||||
|
nn <c-enter> n
|
||||||
|
set number
|
||||||
|
set relativenumber
|
||||||
|
hi LineNr ctermfg=67
|
||||||
|
set tabstop=4
|
||||||
|
set shiftwidth=4
|
||||||
|
set cmdheight=0
|
||||||
|
|
||||||
|
let g:vsnip_snippet_dir = '~/.config/nvim/vsnip'
|
||||||
|
|
||||||
|
colorscheme catppuccin
|
||||||
|
]])
|
||||||
|
|
||||||
35
nvim/lua/config/lazy.lua
Normal file
35
nvim/lua/config/lazy.lua
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
-- Bootstrap lazy.nvim
|
||||||
|
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
|
||||||
|
if not (vim.uv or vim.loop).fs_stat(lazypath) then
|
||||||
|
local lazyrepo = "https://github.com/folke/lazy.nvim.git"
|
||||||
|
local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
|
||||||
|
if vim.v.shell_error ~= 0 then
|
||||||
|
vim.api.nvim_echo({
|
||||||
|
{ "Failed to clone lazy.nvim:\n", "ErrorMsg" },
|
||||||
|
{ out, "WarningMsg" },
|
||||||
|
{ "\nPress any key to exit..." },
|
||||||
|
}, true, {})
|
||||||
|
vim.fn.getchar()
|
||||||
|
os.exit(1)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
vim.opt.rtp:prepend(lazypath)
|
||||||
|
|
||||||
|
-- Make sure to setup `mapleader` and `maplocalleader` before
|
||||||
|
-- loading lazy.nvim so that mappings are correct.
|
||||||
|
-- This is also a good place to setup other settings (vim.opt)
|
||||||
|
vim.g.mapleader = " "
|
||||||
|
vim.g.maplocalleader = "\\"
|
||||||
|
|
||||||
|
-- Setup lazy.nvim
|
||||||
|
require("lazy").setup({
|
||||||
|
spec = {
|
||||||
|
-- import your plugins
|
||||||
|
{ import = "plugins" },
|
||||||
|
},
|
||||||
|
-- Configure any other settings here. See the documentation for more details.
|
||||||
|
-- colorscheme that will be used when installing plugins.
|
||||||
|
install = { colorscheme = { "habamax" } },
|
||||||
|
-- automatically check for plugin updates
|
||||||
|
checker = { enabled = true },
|
||||||
|
})
|
||||||
3
nvim/lua/plugins/autoclose.lua
Normal file
3
nvim/lua/plugins/autoclose.lua
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
return {
|
||||||
|
'm4xshen/autoclose.nvim',
|
||||||
|
}
|
||||||
17
nvim/lua/plugins/cmp.lua
Normal file
17
nvim/lua/plugins/cmp.lua
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
return {
|
||||||
|
'hrsh7th/nvim-cmp',
|
||||||
|
version = false,
|
||||||
|
lazy = false,
|
||||||
|
dependencies = {
|
||||||
|
"neovim/nvim-lspconfig",
|
||||||
|
"hrsh7th/cmp-nvim-lsp",
|
||||||
|
"hrsh7th/cmp-buffer",
|
||||||
|
"hrsh7th/lspkind-nvim",
|
||||||
|
"honza/vim-snippets",
|
||||||
|
"hrsh7th/vim-vsnip",
|
||||||
|
"hrsh7th/cmp-vsnip",
|
||||||
|
"rafamadriz/friendly-snippets"
|
||||||
|
},
|
||||||
|
init = function()
|
||||||
|
end
|
||||||
|
}
|
||||||
16
nvim/lua/plugins/codesnap.lua
Normal file
16
nvim/lua/plugins/codesnap.lua
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
return {
|
||||||
|
'mistricky/codesnap.nvim',
|
||||||
|
lazy = false,
|
||||||
|
build = 'make',
|
||||||
|
keys = {
|
||||||
|
{'<F2>', '<cmd>CodeSnap<cr>', mode = 'x'},
|
||||||
|
},
|
||||||
|
opts = {
|
||||||
|
bg_theme = "sea",
|
||||||
|
has_line_number = true,
|
||||||
|
bg_padding = 0,
|
||||||
|
code_font_family = "ComicShannsMono Nerd Font";
|
||||||
|
mac_window_bar = false,
|
||||||
|
watermark = ""
|
||||||
|
}
|
||||||
|
}
|
||||||
3
nvim/lua/plugins/colors.lua
Normal file
3
nvim/lua/plugins/colors.lua
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
return {
|
||||||
|
'norcalli/nvim-colorizer.lua'
|
||||||
|
}
|
||||||
5
nvim/lua/plugins/keystrokes.lua
Normal file
5
nvim/lua/plugins/keystrokes.lua
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
return {
|
||||||
|
'NStefan002/screenkey.nvim',
|
||||||
|
lazy = false,
|
||||||
|
version = "*",
|
||||||
|
}
|
||||||
6
nvim/lua/plugins/lualine.lua
Normal file
6
nvim/lua/plugins/lualine.lua
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
return {
|
||||||
|
'nvim-lualine/lualine.nvim',
|
||||||
|
dependencies = {
|
||||||
|
'nvim-tree/nvim-web-devicons',
|
||||||
|
}
|
||||||
|
}
|
||||||
4
nvim/lua/plugins/presence.lua
Normal file
4
nvim/lua/plugins/presence.lua
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
return {
|
||||||
|
'andweeb/presence.nvim',
|
||||||
|
lazy = false
|
||||||
|
}
|
||||||
3
nvim/lua/plugins/theme.lua
Normal file
3
nvim/lua/plugins/theme.lua
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
return {
|
||||||
|
'catppuccin/nvim'
|
||||||
|
}
|
||||||
3
nvim/lua/plugins/transparent.lua
Normal file
3
nvim/lua/plugins/transparent.lua
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
return {
|
||||||
|
'xiyaowong/transparent.nvim'
|
||||||
|
}
|
||||||
6
nvim/lua/plugins/typst.lua
Normal file
6
nvim/lua/plugins/typst.lua
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
return {
|
||||||
|
'chomosuke/typst-preview.nvim',
|
||||||
|
lazy = false, -- or ft = 'typst'
|
||||||
|
version = '1.*',
|
||||||
|
opts = {}, -- lazy.nvim will implicitly calls `setup {}`
|
||||||
|
}
|
||||||
BIN
nvim/nvim.txz
Normal file
BIN
nvim/nvim.txz
Normal file
Binary file not shown.
Reference in New Issue
Block a user