change some base utils
This commit is contained in:
@@ -17,3 +17,4 @@
|
||||
- shell:
|
||||
- [git submodule update --init --recursive, Installing submodules]
|
||||
- [cp -r omz-custom/* ohmyzsh/custom]
|
||||
- [cat to_install.txt]
|
||||
|
||||
166
lvim/config.lua
166
lvim/config.lua
@@ -15,17 +15,20 @@ lvim.colorscheme = "onedarker"
|
||||
vim.opt.tabstop = 4
|
||||
vim.opt.softtabstop = 4
|
||||
vim.opt.shiftwidth = 4
|
||||
-- to disable icons and use a minimalist setup, uncomment the following
|
||||
-- lvim.use_icons = false
|
||||
|
||||
-- keymappings [view all the defaults by pressing <leader>Lk]
|
||||
lvim.leader = "space"
|
||||
-- add your own keymapping
|
||||
lvim.keys.normal_mode["<C-s>"] = ":w<cr>"
|
||||
lvim.keys.normal_mode["t"] = "<cmd>ToggleTerm<CR>"
|
||||
|
||||
lvim.keys.normal_mode["t"] = "<cmd>ToggleTerm<CR>"
|
||||
-- lvim.keys.normal_mode["<S-l>"] = ":BufferLineCycleNext<CR>"
|
||||
-- lvim.keys.normal_mode["<S-h>"] = ":BufferLineCyclePrev<CR>"
|
||||
-- unmap a default keymapping
|
||||
-- lvim.keys.normal_mode["<C-Up>"] = false
|
||||
-- edit a default keymapping
|
||||
-- lvim.keys.normal_mode["<C-q>"] = ":q<cr>"
|
||||
-- vim.keymap.del("n", "<C-Up>")
|
||||
-- override a default keymapping
|
||||
-- lvim.keys.normal_mode["<C-q>"] = ":q<cr>" -- or vim.keymap.set("n", "<C-q>", ":q<cr>" )
|
||||
|
||||
-- Change Telescope navigation to use j and k for navigation and n and p for history in both input and normal mode.
|
||||
-- we use protected-mode (pcall) just in case the plugin wasn't loaded yet.
|
||||
@@ -47,15 +50,14 @@ lvim.keys.normal_mode["t"] = "<cmd>ToggleTerm<CR>"
|
||||
|
||||
-- Use which-key to add extra bindings with the leader-key prefix
|
||||
-- lvim.builtin.which_key.mappings["P"] = { "<cmd>Telescope projects<CR>", "Projects" }
|
||||
lvim.builtin.which_key.mappings["d"] = {
|
||||
lvim.builtin.which_key.mappings["t"] = {
|
||||
name = "+Trouble",
|
||||
r = { "<cmd>Trouble lsp_references<cr>", "References" },
|
||||
f = { "<cmd>Trouble lsp_definitions<cr>", "Definitions" },
|
||||
d = { "<cmd>Trouble lsp_document_diagnostics<cr>", "Diagnostics" },
|
||||
d = { "<cmd>Trouble document_diagnostics<cr>", "Diagnostics" },
|
||||
q = { "<cmd>Trouble quickfix<cr>", "QuickFix" },
|
||||
l = { "<cmd>Trouble loclist<cr>", "LocationList" },
|
||||
w = { "<cmd>Trouble lsp_workspace_diagnostics<cr>", "Diagnostics" },
|
||||
c = { "<cmd>TroubleClose<cr>", "Close" },
|
||||
w = { "<cmd>Trouble workspace_diagnostics<cr>", "Workspace Diagnostics" },
|
||||
}
|
||||
|
||||
-- TODO: User Config for predefined plugins
|
||||
@@ -65,7 +67,7 @@ lvim.builtin.alpha.mode = "dashboard"
|
||||
lvim.builtin.notify.active = true
|
||||
lvim.builtin.terminal.active = true
|
||||
lvim.builtin.nvimtree.setup.view.side = "left"
|
||||
-- lvim.builtin.nvimtree.show_icons.git = 0
|
||||
lvim.builtin.nvimtree.setup.renderer.icons.show.git = false
|
||||
|
||||
-- if you don't want all the parsers change this to a table of the ones you want
|
||||
lvim.builtin.treesitter.ensure_installed = {
|
||||
@@ -88,16 +90,34 @@ lvim.builtin.treesitter.highlight.enabled = true
|
||||
|
||||
-- generic LSP settings
|
||||
|
||||
-- ---@usage disable automatic installation of servers
|
||||
-- lvim.lsp.automatic_servers_installation = false
|
||||
-- -- make sure server will always be installed even if the server is in skipped_servers list
|
||||
-- lvim.lsp.installer.setup.ensure_installed = {
|
||||
-- "sumeko_lua",
|
||||
-- "jsonls",
|
||||
-- }
|
||||
-- -- change UI setting of `LspInstallInfo`
|
||||
-- -- see <https://github.com/williamboman/nvim-lsp-installer#default-configuration>
|
||||
-- lvim.lsp.installer.setup.ui.check_outdated_servers_on_open = false
|
||||
-- lvim.lsp.installer.setup.ui.border = "rounded"
|
||||
-- lvim.lsp.installer.setup.ui.keymaps = {
|
||||
-- uninstall_server = "d",
|
||||
-- toggle_server_expand = "o",
|
||||
-- }
|
||||
|
||||
-- ---@usage Select which servers should be configured manually. Requires `:LvimCacheReset` to take effect.
|
||||
-- See the full default list `:lua print(vim.inspect(lvim.lsp.override))`
|
||||
-- vim.list_extend(lvim.lsp.override, { "pyright" })
|
||||
-- vim.list_extend(lvim.lsp.override, { "rust_analyzer" })
|
||||
-- ---@usage setup a server -- see: https://www.lunarvim.org/languages/#overriding-the-default-configuration
|
||||
-- ---@usage disable automatic installation of servers
|
||||
-- lvim.lsp.installer.setup.automatic_installation = false
|
||||
|
||||
-- ---configure a server manually. !!Requires `:LvimCacheReset` to take effect!!
|
||||
-- ---see the full default list `:lua print(vim.inspect(lvim.lsp.automatic_configuration.skipped_servers))`
|
||||
-- vim.list_extend(lvim.lsp.automatic_configuration.skipped_servers, { "pyright" })
|
||||
-- local opts = {} -- check the lspconfig documentation for a list of all possible options
|
||||
-- require("lvim.lsp.manager").setup("pylsp", opts)
|
||||
-- require("lvim.lsp.manager").setup("pyright", opts)
|
||||
|
||||
-- ---remove a server from the skipped list, e.g. eslint, or emmet_ls. !!Requires `:LvimCacheReset` to take effect!!
|
||||
-- ---`:LvimInfo` lists which server(s) are skipped for the current filetype
|
||||
-- lvim.lsp.automatic_configuration.skipped_servers = vim.tbl_filter(function(server)
|
||||
-- return server ~= "emmet_ls"
|
||||
-- end, lvim.lsp.automatic_configuration.skipped_servers)
|
||||
|
||||
-- -- you can set a custom on_attach function that will be used for all the language servers
|
||||
-- -- See <https://github.com/neovim/nvim-lspconfig#keybindings-and-completion>
|
||||
@@ -143,61 +163,101 @@ lvim.builtin.treesitter.highlight.enabled = true
|
||||
-- },
|
||||
-- }
|
||||
|
||||
|
||||
vim.list_extend(lvim.lsp.automatic_configuration.skipped_servers, { "rust_analyzer" })
|
||||
|
||||
-- Additional Plugins
|
||||
lvim.plugins = {
|
||||
{"folke/tokyonight.nvim"},
|
||||
{
|
||||
"folke/trouble.nvim",
|
||||
cmd = "TroubleToggle",
|
||||
},
|
||||
{
|
||||
"Pocco81/AutoSave.nvim",
|
||||
config = function()
|
||||
require("autosave").setup()
|
||||
end,
|
||||
{ "folke/tokyonight.nvim" },
|
||||
{
|
||||
"folke/trouble.nvim",
|
||||
cmd = "TroubleToggle",
|
||||
},
|
||||
{
|
||||
"Pocco81/auto-save.nvim",
|
||||
config = function()
|
||||
require("auto-save").setup()
|
||||
end,
|
||||
},
|
||||
-- Markdonw
|
||||
{
|
||||
"ellisonleao/glow.nvim",
|
||||
ft = {"markdown"},
|
||||
ft = { "markdown" },
|
||||
cmd = "GlowInstall",
|
||||
},
|
||||
-- :Rust
|
||||
{
|
||||
'saecki/crates.nvim',
|
||||
event = { "BufRead Cargo.toml" },
|
||||
requires = { { 'nvim-lua/plenary.nvim' } },
|
||||
-- {
|
||||
-- 'saecki/crates.nvim',
|
||||
-- event = { "BufRead Cargo.toml" },
|
||||
-- requires = { { 'nvim-lua/plenary.nvim' } },
|
||||
-- config = function()
|
||||
-- require('crates').setup()
|
||||
-- end,
|
||||
-- },
|
||||
{
|
||||
"simrat39/rust-tools.nvim",
|
||||
-- ft = { "rust", "rs" }, -- IMPORTANT: re-enabling this seems to break inlay-hints
|
||||
config = function()
|
||||
require('crates').setup()
|
||||
end,
|
||||
},
|
||||
{
|
||||
"simrat39/rust-tools.nvim",
|
||||
config = function()
|
||||
require("rust-tools").setup({
|
||||
require("rust-tools").setup {
|
||||
tools = {
|
||||
autoSetHints = true,
|
||||
hover_with_actions = true,
|
||||
runnables = {
|
||||
use_telescope = true,
|
||||
executor = require("rust-tools/executors").termopen, -- can be quickfix or termopen
|
||||
reload_workspace_from_cargo_toml = true,
|
||||
inlay_hints = {
|
||||
auto = true,
|
||||
only_current_line = false,
|
||||
show_parameter_hints = true,
|
||||
parameter_hints_prefix = "<-",
|
||||
other_hints_prefix = ":",
|
||||
max_len_align = false,
|
||||
max_len_align_padding = 1,
|
||||
right_align = false,
|
||||
right_align_padding = 7,
|
||||
highlight = "Comment",
|
||||
},
|
||||
hover_actions = {
|
||||
border = {
|
||||
{ "╭", "FloatBorder" },
|
||||
{ "─", "FloatBorder" },
|
||||
{ "╮", "FloatBorder" },
|
||||
{ "│", "FloatBorder" },
|
||||
{ "╯", "FloatBorder" },
|
||||
{ "─", "FloatBorder" },
|
||||
{ "╰", "FloatBorder" },
|
||||
{ "│", "FloatBorder" },
|
||||
},
|
||||
auto_focus = true,
|
||||
},
|
||||
},
|
||||
server = {
|
||||
cmd = { vim.fn.stdpath "data" .. "/lsp_servers/rust/rust-analyzer" },
|
||||
on_attach = require("lvim.lsp").common_on_attach,
|
||||
on_init = require("lvim.lsp").common_on_init,
|
||||
on_attach = function(client, bufnr)
|
||||
require("lvim.lsp").common_on_attach(client, bufnr)
|
||||
local rt = require "rust-tools"
|
||||
-- Hover actions
|
||||
vim.keymap.set("n", "<C-space>", rt.hover_actions.hover_actions, { buffer = bufnr })
|
||||
-- Code action groups
|
||||
vim.keymap.set("n", "<leader>lA", rt.code_action_group.code_action_group, { buffer = bufnr })
|
||||
end,
|
||||
},
|
||||
})
|
||||
}
|
||||
end,
|
||||
ft = { "rust", "rs" },
|
||||
},
|
||||
-- Java
|
||||
},
|
||||
-- Java
|
||||
{
|
||||
'hdiniz/vim-gradle'
|
||||
}
|
||||
}
|
||||
|
||||
-- Autocommands (https://neovim.io/doc/user/autocmd.html)
|
||||
-- lvim.autocommands.custom_groups = {
|
||||
-- { "BufWinEnter", "*.lua", "setlocal ts=8 sw=8" },
|
||||
-- }
|
||||
-- vim.api.nvim_create_autocmd("BufEnter", {
|
||||
-- pattern = { "*.json", "*.jsonc" },
|
||||
-- -- enable wrap mode for json files only
|
||||
-- command = "setlocal wrap",
|
||||
-- })
|
||||
-- vim.api.nvim_create_autocmd("FileType", {
|
||||
-- pattern = "zsh",
|
||||
-- callback = function()
|
||||
-- -- let treesitter use bash highlight for zsh files as well
|
||||
-- require("nvim-treesitter.highlight").attach(0, "bash")
|
||||
-- end,
|
||||
-- })
|
||||
|
||||
6
to_install.txt
Normal file
6
to_install.txt
Normal file
@@ -0,0 +1,6 @@
|
||||
Installer :
|
||||
- exa
|
||||
- bat
|
||||
- fd
|
||||
- ripgrep
|
||||
- glow
|
||||
Reference in New Issue
Block a user