Simplify statusline, support tabs, add more languages
This commit is contained in:
parent
c28dd3e9a9
commit
bb94a399de
11 changed files with 166 additions and 109 deletions
|
|
@ -1,39 +1,3 @@
|
|||
local palette = {
|
||||
none = "NONE",
|
||||
fg = "#E1E1E1",
|
||||
bg = "#151515",
|
||||
alt_bg = "#171717",
|
||||
accent = "#202020",
|
||||
white = "#E1E1E1",
|
||||
gray = "#373737",
|
||||
medium_gray = "#727272",
|
||||
light_gray = "#AFAFAF",
|
||||
blue = "#BAD7FF",
|
||||
gray_blue = "#7E97AB",
|
||||
medium_gray_blue = "#A2B5C1",
|
||||
cyan = "#88afa2",
|
||||
red = "#b46958",
|
||||
green = "#90A959",
|
||||
yellow = "#F4BF75",
|
||||
orange = "#FFA557",
|
||||
purple = "#AA749F",
|
||||
magenta = "#AA759F",
|
||||
cursor_fg = "#151515",
|
||||
cursor_bg = "#D0D0D0",
|
||||
sign_add = "#586935",
|
||||
sign_change = "#51657B",
|
||||
sign_delete = "#984936",
|
||||
error = "#984936",
|
||||
warning = "#ab8550",
|
||||
info = "#ab8550",
|
||||
hint = "#576f82",
|
||||
neogit_light_green = "#2A2E19",
|
||||
neogit_blue = "#1B1F27",
|
||||
neogit_green = "#212513",
|
||||
neogit_light_red = "#402020",
|
||||
neogit_red = "#351D1D",
|
||||
}
|
||||
|
||||
require("no-clown-fiesta").setup({
|
||||
transparent = true,
|
||||
})
|
||||
|
|
@ -143,65 +107,4 @@ require('vscode').setup({
|
|||
}
|
||||
})
|
||||
|
||||
vim.cmd[[
|
||||
let s:base03 = [ '#151513', 233 ]
|
||||
let s:base02 = [ '#202020', 236 ]
|
||||
let s:base01 = [ '#373737', 239 ]
|
||||
let s:base00 = [ '#727272', 242 ]
|
||||
let s:base0 = [ '#808070', 244 ]
|
||||
let s:base1 = [ '#949484', 246 ]
|
||||
let s:base2 = [ '#a8a897', 248 ]
|
||||
let s:base3 = [ '#E1E1E1', 253 ]
|
||||
let s:yellow = [ '#F4BF75', 3 ]
|
||||
let s:orange = [ '#FFA557', 216 ]
|
||||
let s:red = [ '#B46958', 131 ]
|
||||
let s:purple = [ '#AA749F', 181 ]
|
||||
let s:blue = [ '#7E97AB', 109 ]
|
||||
let s:cyan = [ '#BAD7FF', 23 ]
|
||||
let s:green = [ '#90A959', 108 ]
|
||||
let s:white = [ '#AFAFAF', 252 ]
|
||||
|
||||
let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}}
|
||||
let s:p.normal.left = [ [ s:base02, s:green ], [ s:base3, s:base01 ] ]
|
||||
let s:p.normal.right = [ [ s:base02, s:base1 ], [ s:base2, s:base01 ] ]
|
||||
let s:p.inactive.right = [ [ s:base02, s:base00 ], [ s:base0, s:base02 ] ]
|
||||
let s:p.inactive.left = [ [ s:base0, s:base02 ], [ s:base00, s:base02 ] ]
|
||||
let s:p.insert.left = [ [ s:base02, s:blue ], [ s:base3, s:base01 ] ]
|
||||
let s:p.replace.left = [ [ s:base02, s:purple ], [ s:base3, s:base01 ] ]
|
||||
let s:p.visual.left = [ [ s:base02, s:red ], [ s:base3, s:base01 ] ]
|
||||
let s:p.normal.middle = [ [ s:base0, s:base02 ] ]
|
||||
let s:p.inactive.middle = [ [ s:base00, s:base02 ] ]
|
||||
let s:p.tabline.left = [ [ s:base3, s:base00 ] ]
|
||||
let s:p.tabline.tabsel = [ [ s:base3, s:base02 ] ]
|
||||
let s:p.tabline.middle = [ [ s:base01, s:base1 ] ]
|
||||
let s:p.tabline.right = copy(s:p.normal.right)
|
||||
let s:p.normal.error = [ [ s:red, s:base02 ] ]
|
||||
let s:p.normal.warning = [ [ s:yellow, s:base01 ] ]
|
||||
|
||||
let g:lightline#colorscheme#mycolors#palette = lightline#colorscheme#flatten(s:p)
|
||||
let g:lightline = {
|
||||
\ 'colorscheme': 'mycolors',
|
||||
\ }
|
||||
|
||||
" Don't need to see mode if lightline is installed
|
||||
set noshowmode
|
||||
]]
|
||||
|
||||
vim.cmd[[colorscheme no-clown-fiesta]]
|
||||
|
||||
-- My own color overrides
|
||||
local hl = vim.api.nvim_set_hl
|
||||
hl(0, 'TSConstant', { fg = palette.yellow })
|
||||
hl(0, 'EndOfBuffer', { fg = palette.medium_gray })
|
||||
hl(0, 'ErrorMsg', { fg = palette.yellow })
|
||||
hl(0, 'LineNr', { fg = palette.medium_gray })
|
||||
hl(0, 'MasonNormal', { bg = palette.gray })
|
||||
hl(0, 'NvimTreeCursorLine', { fg = palette.yellow })
|
||||
hl(0, 'NvimTreeEndOfBuffer', { fg = palette.medium_gray })
|
||||
hl(0, 'NvimTreeIndentMarker', { fg = palette.medium_gray })
|
||||
hl(0, 'NvimTreeFolderIcon', { fg = palette.yellow })
|
||||
hl(0, 'WhichKeyBorder', { fg = palette.medium_gray, bg = palette.accent })
|
||||
hl(0, 'WhichKeyDesc', { link = "function" })
|
||||
hl(0, 'WhichKey', { fg = palette.medium_gray_blue })
|
||||
hl(0, 'WhichKeyGroup', { fg = palette.gray_blue, bold = true })
|
||||
|
||||
|
|
|
|||
10
after/plugin/compile-mode.lua
Normal file
10
after/plugin/compile-mode.lua
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
require("compile-mode")
|
||||
|
||||
vim.g.compile_mode = {
|
||||
beleia_setup = true
|
||||
}
|
||||
|
||||
vim.keymap.set("n", "<leader>cC", vim.cmd.Compile, {desc = "Compile"})
|
||||
vim.keymap.set("n", "<leader>cc", vim.cmd.Recompile, {desc = "Recompile"})
|
||||
|
||||
|
||||
|
|
@ -21,6 +21,8 @@ lspconfig.lua_ls.setup({
|
|||
},
|
||||
})
|
||||
|
||||
vim.g.zig_fmt_autosave = 0
|
||||
|
||||
-- RUST
|
||||
-- Must run `rustup default stable` and then `rustup component add rust-analyzer`
|
||||
-- upon first install
|
||||
|
|
@ -30,6 +32,30 @@ lspconfig.clangd.setup({
|
|||
capabilities = lsp_capabilities,
|
||||
})
|
||||
|
||||
lspconfig.gopls.setup({
|
||||
settings = {
|
||||
gopls = {
|
||||
analyses = {
|
||||
unusedparams = true,
|
||||
},
|
||||
staticcheck = true,
|
||||
gofumpt = true,
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
lspconfig.pylsp.setup({
|
||||
settings = {
|
||||
pylsp = {
|
||||
pylint = { enabled = true, executable = "pylint" },
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
vim.keymap.set("n", "<leader>gf", ":GoFmt<CR>",
|
||||
{ noremap = true, silent = true, desc = "Go Format" }
|
||||
)
|
||||
|
||||
-- AUTOCOMPLETION
|
||||
|
||||
local cmp = require('cmp')
|
||||
|
|
|
|||
14
after/plugin/lualine.lua
Normal file
14
after/plugin/lualine.lua
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
require("lualine").setup({
|
||||
sections = {
|
||||
lualine_a = {'mode'},
|
||||
lualine_b = {'tabs', 'filename'},
|
||||
lualine_c = {'branch', 'diff', 'diagnostics'},
|
||||
lualine_x = {'encoding', 'filetype'},
|
||||
lualine_y = {'progress'},
|
||||
lualine_z = {'location'}
|
||||
},
|
||||
})
|
||||
|
||||
vim.cmd[[set showtabline=0]]
|
||||
vim.cmd[[set noshowmode]]
|
||||
|
||||
|
|
@ -39,7 +39,7 @@ let g:mkdp_open_ip = ''
|
|||
" valid: `/path/with\ space/xxx`
|
||||
" invalid: `/path/with\\ space/xxx`
|
||||
" default: ''
|
||||
let g:mkdp_browser = 'thorium-browser'
|
||||
let g:mkdp_browser = 'zen'
|
||||
|
||||
" set to 1, echo preview page url in command line when open preview page
|
||||
" default is 0
|
||||
|
|
|
|||
9
after/plugin/possession.lua
Normal file
9
after/plugin/possession.lua
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
require("possession").setup({})
|
||||
|
||||
require('telescope').load_extension('possession')
|
||||
vim.keymap.set("n", "<leader>pp", ":Telescope possession list<CR>",
|
||||
{ desc = "List neovim sessions" })
|
||||
|
||||
vim.keymap.set("n", "<leader>ss", ":PossessionSave<CR>",
|
||||
{ desc = "List neovim sessions" })
|
||||
|
||||
|
|
@ -6,13 +6,12 @@ require("telescope").setup{
|
|||
}
|
||||
}
|
||||
|
||||
local wk = require("which-key")
|
||||
|
||||
vim.keymap.set("n", "<leader>p", "<noop>", {desc = "Project"})
|
||||
vim.keymap.set("n", "<leader>pf", builtin.find_files, {desc = "Project find"})
|
||||
vim.keymap.set("n", "<leader>pf", ":Telescope find_files no_ignore=true <CR>", {desc = "Project find"})
|
||||
vim.keymap.set("n", "<leader>.", builtin.find_files, {desc = "Project find (.gitignore)"})
|
||||
vim.keymap.set("n", "<leader>ps",
|
||||
function ()
|
||||
builtin.grep_string({ search = vim.fn.input("Grep > ") })
|
||||
builtin.grep_string({ search = vim.fn.input("Grep > "), no_ignore = true })
|
||||
end,
|
||||
{ desc = "Project search" })
|
||||
|
||||
|
|
|
|||
|
|
@ -2,6 +2,8 @@ require'nvim-treesitter.configs'.setup {
|
|||
ensure_installed = {
|
||||
"c",
|
||||
"css",
|
||||
"glsl",
|
||||
"go",
|
||||
"html",
|
||||
"java",
|
||||
"javascript",
|
||||
|
|
@ -29,3 +31,10 @@ require'nvim-treesitter.configs'.setup {
|
|||
},
|
||||
}
|
||||
|
||||
vim.api.nvim_create_autocmd({"BufRead", "BufNewFile"}, {
|
||||
pattern = {"*.vert", "*.frag"},
|
||||
callback = function()
|
||||
vim.bo.filetype = "glsl"
|
||||
end,
|
||||
})
|
||||
|
||||
|
|
|
|||
|
|
@ -30,6 +30,17 @@ require("lazy").setup({
|
|||
event = "VeryLazy",
|
||||
},
|
||||
|
||||
-- Markdown preview
|
||||
{
|
||||
"iamcco/markdown-preview.nvim",
|
||||
cmd = { 'MarkdownPreviewToggle', 'MarkdownPreview', 'MarkdownPreviewStop' },
|
||||
ft = { 'markdown' },
|
||||
build = function()
|
||||
vim.cmd [[Lazy load markdown-preview.nvim]]
|
||||
vim.fn['mkdp#util#install']()
|
||||
end,
|
||||
},
|
||||
|
||||
-- Dashboard buffer
|
||||
{
|
||||
"goolord/alpha-nvim",
|
||||
|
|
@ -37,6 +48,25 @@ require("lazy").setup({
|
|||
dependencies = { 'nvim-tree/nvim-web-devicons' },
|
||||
},
|
||||
|
||||
-- Compile mode
|
||||
{
|
||||
"ej-shafran/compile-mode.nvim",
|
||||
-- tag = "v5.*",
|
||||
-- you can just use the latest version:
|
||||
branch = "latest",
|
||||
-- or the most up-to-date updates:
|
||||
-- branch = "nightly",
|
||||
dependencies = {
|
||||
"nvim-lua/plenary.nvim",
|
||||
{ "m00qek/baleia.nvim", tag = "v1.3.0" },
|
||||
},
|
||||
config = function()
|
||||
vim.g.compile_mode = {
|
||||
baleia_setup = true,
|
||||
}
|
||||
end
|
||||
};
|
||||
|
||||
-- Zen mode
|
||||
"folke/zen-mode.nvim",
|
||||
|
||||
|
|
@ -75,10 +105,10 @@ require("lazy").setup({
|
|||
|
||||
-- See function signatures when typing them
|
||||
{
|
||||
"ray-x/lsp_signature.nvim",
|
||||
event = "VeryLazy",
|
||||
opts = {},
|
||||
config = function(_, opts) require'lsp_signature'.setup(opts) end
|
||||
-- "ray-x/lsp_signature.nvim",
|
||||
-- event = "VeryLazy",
|
||||
-- opts = {},
|
||||
-- config = function(_, opts) require'lsp_signature'.setup(opts) end
|
||||
},
|
||||
|
||||
-- Left-side file tree dispaly
|
||||
|
|
@ -89,8 +119,15 @@ require("lazy").setup({
|
|||
},
|
||||
},
|
||||
|
||||
-- Shows current mode on bottom of screen
|
||||
"itchyny/lightline.vim",
|
||||
{
|
||||
'nvim-lualine/lualine.nvim',
|
||||
dependencies = { 'nvim-tree/nvim-web-devicons' },
|
||||
},
|
||||
|
||||
{
|
||||
'jedrzejboczar/possession.nvim',
|
||||
requires = { 'nvim-lua/plenary.nvim' },
|
||||
},
|
||||
|
||||
-- LSP
|
||||
{'VonHeikemen/lsp-zero.nvim', branch = 'v4.x'},
|
||||
|
|
|
|||
|
|
@ -10,13 +10,23 @@ vim.keymap.set("n", "J", "mzJ`z")
|
|||
vim.keymap.set("n", "n", "nzzzv")
|
||||
vim.keymap.set("n", "N", "Nzzzv")
|
||||
|
||||
-- step through visual lines by default
|
||||
vim.keymap.set("n", "j", "gj")
|
||||
vim.keymap.set("n", "gj", "j")
|
||||
vim.keymap.set("n", "k", "gk")
|
||||
vim.keymap.set("n", "gk", "k")
|
||||
vim.keymap.set("v", "j", "gj")
|
||||
vim.keymap.set("v", "gj", "j")
|
||||
vim.keymap.set("v", "k", "gk")
|
||||
vim.keymap.set("v", "gk", "k")
|
||||
|
||||
-- easier escape back to normal mode
|
||||
vim.keymap.set("i", "<C-c>", "<Esc>")
|
||||
|
||||
vim.keymap.set("n", "Q", "<nop>")
|
||||
|
||||
-- universal find and replace
|
||||
vim.keymap.set("n", "<leader>s", [[:%s/\<<C-r><C-w>\>/<C-r><C-w>/gI<Left><Left><Left>]])
|
||||
vim.keymap.set("n", "<leader>r", [[:%s/\<<C-r><C-w>\>/<C-r><C-w>/gI<Left><Left><Left>]])
|
||||
|
||||
-- moving highlighted text
|
||||
vim.keymap.set("v", "J", ":m '>+1<CR>gv=gv")
|
||||
|
|
@ -87,3 +97,34 @@ vim.keymap.set("n", "<leader>hF",
|
|||
{ noremap = true, silent = false, desc = "Describe face" }
|
||||
)
|
||||
|
||||
local str = string.format
|
||||
|
||||
for i = 1, 9 do
|
||||
vim.keymap.set("n", str("<A-%s>", i), str("%sgt", i), { desc = str("Goto tab %s", i) })
|
||||
vim.keymap.set("t", str("<A-%s>", i), str("<C-\\><C-n>%sgt", i), { desc = str("Goto tab %s", i) })
|
||||
end
|
||||
|
||||
vim.keymap.set("n", "<A-n>", "<CMD>tabnew<CR>", { desc = "Create a new tab" })
|
||||
vim.keymap.set("n", "<A-CR>", "<CMD>tabnew<CR><CMD>term<CR>i", { desc = "Create a new tab with a terminal" })
|
||||
vim.keymap.set("n", "<A-q>", "<CMD>tabclose<CR>", { desc = "Close current tab" })
|
||||
vim.keymap.set("n", "<A-0>", "<CMD>tablast<CR>", { desc = "Goto last tab" })
|
||||
vim.keymap.set("n", "<A-]>", "<CMD>tabnext<CR>", { desc = "Goto next tab" })
|
||||
vim.keymap.set("n", "<A-[>", "<CMD>tabprevious<CR>", { desc = "Goto prev tab" })
|
||||
vim.keymap.set("n", "<A-->", "<CMD>tabm-<CR>", { desc = "Move tab to the left" })
|
||||
vim.keymap.set("n", "<A-=>", "<CMD>tabm+<CR>", { desc = "Move tab to the right" })
|
||||
vim.keymap.set("n", "<A-'>", "<CMD>tab split<CR>", { desc = "Clone window in new tab" })
|
||||
|
||||
vim.keymap.set("n", "<C-w><CR>", "<CMD>term<CR>i", { desc = "Terminal" })
|
||||
|
||||
vim.api.nvim_create_autocmd("TabEnter", {
|
||||
callback = function()
|
||||
local bufnr = vim.api.nvim_get_current_buf()
|
||||
local buftype = vim.api.nvim_buf_get_option(bufnr, "buftype")
|
||||
|
||||
if buftype == "terminal" then
|
||||
-- Enter Terminal-Job mode
|
||||
vim.api.nvim_feedkeys("i", "n", false)
|
||||
end
|
||||
end,
|
||||
})
|
||||
|
||||
|
|
|
|||
|
|
@ -21,6 +21,13 @@ autocmd("bufenter", {
|
|||
end,
|
||||
})
|
||||
|
||||
-- You can then map it to a key or create a command:
|
||||
vim.api.nvim_create_user_command('GoFmt', function()
|
||||
local filename = vim.fn.expand('%')
|
||||
vim.fn.system('gofmt -e -w ' .. filename)
|
||||
vim.cmd('edit!')
|
||||
end, {})
|
||||
|
||||
vim.filetype.add({
|
||||
extension = {
|
||||
typ = 'typst'
|
||||
|
|
@ -39,6 +46,8 @@ vim.opt.signcolumn = "auto"
|
|||
|
||||
vim.o.shell = "zsh"
|
||||
|
||||
vim.o.title = true
|
||||
|
||||
-- Do not map q to :q in man mode
|
||||
vim.g.no_man_maps = true;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue