mirror of
https://github.com/ksyasuda/rice.git
synced 2024-10-28 09:04:10 -07:00
208 lines
6.9 KiB
Lua
208 lines
6.9 KiB
Lua
|
-- general
|
|||
|
lvim.log.level = "warn"
|
|||
|
lvim.format_on_save = true
|
|||
|
lvim.colorscheme = "onedarker"
|
|||
|
|
|||
|
lvim.leader = "space"
|
|||
|
lvim.keys.normal_mode["<C-s>"] = ":w<cr>"
|
|||
|
|
|||
|
-- custom settings
|
|||
|
vim.opt.relativenumber = true
|
|||
|
vim.opt.wrap = true
|
|||
|
vim.opt.undofile = false
|
|||
|
|
|||
|
lvim.builtin.dashboard.active = true
|
|||
|
lvim.builtin.terminal.active = true
|
|||
|
lvim.builtin.nvimtree.setup.view.side = "left"
|
|||
|
lvim.builtin.nvimtree.show_icons.git = 1
|
|||
|
|
|||
|
local components = require("lvim.core.lualine.components")
|
|||
|
|
|||
|
lvim.builtin.lualine.sections.lualine_a = { "mode" }
|
|||
|
lvim.builtin.lualine.sections.lualine_c = { components.python_env }
|
|||
|
lvim.builtin.lualine.sections.lualine_y = {
|
|||
|
components.location,
|
|||
|
}
|
|||
|
|
|||
|
lvim.builtin.treesitter.ensure_installed = {
|
|||
|
"bash",
|
|||
|
"c",
|
|||
|
"javascript",
|
|||
|
"json",
|
|||
|
"lua",
|
|||
|
"python",
|
|||
|
"typescript",
|
|||
|
"css",
|
|||
|
"rust",
|
|||
|
"java",
|
|||
|
"yaml",
|
|||
|
}
|
|||
|
|
|||
|
lvim.builtin.treesitter.ignore_install = { "haskell" }
|
|||
|
lvim.builtin.treesitter.highlight.enabled = true
|
|||
|
|
|||
|
local formatters = require "lvim.lsp.null-ls.formatters"
|
|||
|
formatters.setup {
|
|||
|
{ exe = "black", filetypes = { "python" } },
|
|||
|
{ exe = "isort", filetypes = { "python" } },
|
|||
|
{
|
|||
|
exe = "prettier",
|
|||
|
args = { "--print-with", "80" },
|
|||
|
filetypes = { "typescript", "typescriptreact", "javascript", "javascriptreact" },
|
|||
|
},
|
|||
|
{ exe = "shfmt", filetypes = { "shell", "sh" }, args = {'-i=0','-sr', '-ci'} },
|
|||
|
}
|
|||
|
|
|||
|
-- -- set additional linters
|
|||
|
local linters = require "lvim.lsp.null-ls.linters"
|
|||
|
linters.setup {
|
|||
|
{ exe = "flake8", filetypes = { "python" } },
|
|||
|
{
|
|||
|
exe = "shellcheck",
|
|||
|
fieltypes = { "shell" },
|
|||
|
args = { "--severity", "warning" },
|
|||
|
},
|
|||
|
-- {
|
|||
|
-- exe = "codespell",
|
|||
|
-- ---@usage specify which filetypes to enable. By default a providers will attach to all the filetypes it supports.
|
|||
|
-- filetypes = { "javascript", "python" },
|
|||
|
-- },
|
|||
|
}
|
|||
|
|
|||
|
-- Additional Plugins
|
|||
|
lvim.plugins = {
|
|||
|
{
|
|||
|
"folke/trouble.nvim",
|
|||
|
cmd = "TroubleToggle",
|
|||
|
},
|
|||
|
{
|
|||
|
"simrat39/symbols-outline.nvim",
|
|||
|
cmd = "SymbolsOutline",
|
|||
|
},
|
|||
|
{
|
|||
|
"ray-x/lsp_signature.nvim",
|
|||
|
event = "BufRead",
|
|||
|
config = function()
|
|||
|
require "lsp_signature".setup()
|
|||
|
end
|
|||
|
},
|
|||
|
{
|
|||
|
"rmagatti/goto-preview",
|
|||
|
config = function()
|
|||
|
require('goto-preview').setup {
|
|||
|
width = 120; -- Width of the floating window
|
|||
|
height = 25; -- Height of the floating window
|
|||
|
default_mappings = false; -- Bind default mappings
|
|||
|
debug = false; -- Print debug information
|
|||
|
opacity = nil; -- 0-100 opacity level of the floating window where 100 is fully transparent.
|
|||
|
post_open_hook = nil -- A function taking two arguments, a buffer and a window to be ran as a hook.
|
|||
|
-- You can use "default_mappings = true" setup option
|
|||
|
-- Or explicitly set keybindings
|
|||
|
-- vim.cmd("nnoremap gpd <cmd>lua require('goto-preview').goto_preview_definition()<CR>")
|
|||
|
-- vim.cmd("nnoremap gpi <cmd>lua require('goto-preview').goto_preview_implementation()<CR>")
|
|||
|
-- vim.cmd("nnoremap gP <cmd>lua require('goto-preview').close_all_win()<CR>")
|
|||
|
}
|
|||
|
end
|
|||
|
},
|
|||
|
'ethanholz/nvim-lastplace',
|
|||
|
'wakatime/vim-wakatime',
|
|||
|
'ap/vim-css-color'
|
|||
|
}
|
|||
|
|
|||
|
-- add jedi_language_server
|
|||
|
lvim.lsp.templates_dir = join_paths(get_runtime_dir(), "after", "ftplugin")
|
|||
|
local opts = {}
|
|||
|
require("lvim.lsp.manager").setup("jedi_language_server", opts)
|
|||
|
|
|||
|
require'lspconfig'.sqlls.setup{}
|
|||
|
|
|||
|
-- add bashls
|
|||
|
-- require('lspconfig').bashls.setup{}
|
|||
|
require'lspconfig'.bashls.setup{}
|
|||
|
|
|||
|
-- lsp_signature
|
|||
|
require "lsp_signature".setup()
|
|||
|
|
|||
|
require'nvim-lastplace'.setup {
|
|||
|
lastplace_ignore_buftype = {"quickfix", "nofile", "help"},
|
|||
|
lastplace_ignore_filetype = {"gitcommit", "gitrebase", "svn", "hgcommit"},
|
|||
|
lastplace_open_folds = true
|
|||
|
}
|
|||
|
|
|||
|
require('goto-preview').setup {
|
|||
|
width = 220; -- Width of the floating window
|
|||
|
height = 55; -- Height of the floating window
|
|||
|
border = {"↖", "─" ,"┐", "│", "┘", "─", "└", "│"}; -- Border characters of the floating window
|
|||
|
default_mappings = true; -- Bind default mappings
|
|||
|
debug = false; -- Print debug information
|
|||
|
opacity = nil; -- 0-100 opacity level of the floating window where 100 is fully transparent.
|
|||
|
resizing_mappings = false; -- Binds arrow keys to resizing the floating window.
|
|||
|
post_open_hook = nil; -- A function taking two arguments, a buffer and a window to be ran as a hook.
|
|||
|
-- These two configs can also be passed down to the goto-preview definition and implementation calls for one off "peak" functionality.
|
|||
|
focus_on_open = true; -- Focus the floating window when opening it.
|
|||
|
dismiss_on_move = false; -- Dismiss the floating window when moving the cursor.
|
|||
|
force_close = true, -- passed into vim.api.nvim_win_close's second argument. See :h nvim_win_close
|
|||
|
bufhidden = "wipe", -- the bufhidden option to set on the floating window. See :h bufhidden
|
|||
|
}
|
|||
|
|
|||
|
-- init.lua
|
|||
|
vim.g.symbols_outline = {
|
|||
|
highlight_hovered_item = true,
|
|||
|
show_guides = true,
|
|||
|
auto_preview = true,
|
|||
|
position = 'right',
|
|||
|
relative_width = true,
|
|||
|
width = 25,
|
|||
|
show_numbers = false,
|
|||
|
show_relative_numbers = false,
|
|||
|
show_symbol_details = true,
|
|||
|
preview_bg_highlight = 'Pmenu',
|
|||
|
keymaps = { -- These keymaps can be a string or a table for multiple keys
|
|||
|
close = {"<Esc>", "q"},
|
|||
|
goto_location = "<Cr>",
|
|||
|
focus_location = "o",
|
|||
|
hover_symbol = "<C-space>",
|
|||
|
toggle_preview = "K",
|
|||
|
rename_symbol = "r",
|
|||
|
code_actions = "a",
|
|||
|
},
|
|||
|
lsp_blacklist = {},
|
|||
|
symbol_blacklist = {},
|
|||
|
symbols = {
|
|||
|
File = {icon = "", hl = "TSURI"},
|
|||
|
Module = {icon = "", hl = "TSNamespace"},
|
|||
|
Namespace = {icon = "", hl = "TSNamespace"},
|
|||
|
Package = {icon = "", hl = "TSNamespace"},
|
|||
|
Class = {icon = "𝓒", hl = "TSType"},
|
|||
|
Method = {icon = "ƒ", hl = "TSMethod"},
|
|||
|
Property = {icon = "", hl = "TSMethod"},
|
|||
|
Field = {icon = "", hl = "TSField"},
|
|||
|
Constructor = {icon = "", hl = "TSConstructor"},
|
|||
|
Enum = {icon = "ℰ", hl = "TSType"},
|
|||
|
Interface = {icon = "ﰮ", hl = "TSType"},
|
|||
|
Function = {icon = "", hl = "TSFunction"},
|
|||
|
Variable = {icon = "", hl = "TSConstant"},
|
|||
|
Constant = {icon = "", hl = "TSConstant"},
|
|||
|
String = {icon = "𝓐", hl = "TSString"},
|
|||
|
Number = {icon = "#", hl = "TSNumber"},
|
|||
|
Boolean = {icon = "⊨", hl = "TSBoolean"},
|
|||
|
Array = {icon = "", hl = "TSConstant"},
|
|||
|
Object = {icon = "⦿", hl = "TSType"},
|
|||
|
Key = {icon = "🔐", hl = "TSType"},
|
|||
|
Null = {icon = "NULL", hl = "TSType"},
|
|||
|
EnumMember = {icon = "", hl = "TSField"},
|
|||
|
Struct = {icon = "𝓢", hl = "TSType"},
|
|||
|
Event = {icon = "🗲", hl = "TSType"},
|
|||
|
Operator = {icon = "+", hl = "TSOperator"},
|
|||
|
TypeParameter = {icon = "𝙏", hl = "TSParameter"}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
vim.api.nvim_set_keymap("n", "ss", "<cmd>SymbolsOutline<CR>", {noremap=true})
|
|||
|
|
|||
|
|
|||
|
-- Autocommands (https://neovim.io/doc/user/autocmd.html)
|
|||
|
-- lvim.autocommands.custom_groups = {
|
|||
|
-- { "BufWinEnter", "*.lua", "setlocal ts=8 sw=8" },
|
|||
|
-- }
|