From dd02e4ee8c87b0d3ac1d0b754c8a40c14d451f73 Mon Sep 17 00:00:00 2001 From: jika Date: Sun, 25 Sep 2022 18:56:59 +0200 Subject: [PATCH] change some base utils --- install.conf.yaml | 1 + lvim/config.lua | 166 +++++++++++++++++++++++++++++++--------------- to_install.txt | 6 ++ zshrc | 4 ++ 4 files changed, 124 insertions(+), 53 deletions(-) create mode 100644 to_install.txt diff --git a/install.conf.yaml b/install.conf.yaml index 873aba0..8f3f149 100644 --- a/install.conf.yaml +++ b/install.conf.yaml @@ -17,3 +17,4 @@ - shell: - [git submodule update --init --recursive, Installing submodules] - [cp -r omz-custom/* ohmyzsh/custom] + - [cat to_install.txt] diff --git a/lvim/config.lua b/lvim/config.lua index e3bf579..cff8759 100644 --- a/lvim/config.lua +++ b/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 Lk] lvim.leader = "space" -- add your own keymapping lvim.keys.normal_mode[""] = ":w" -lvim.keys.normal_mode["t"] = "ToggleTerm" - +lvim.keys.normal_mode["t"] = "ToggleTerm" +-- lvim.keys.normal_mode[""] = ":BufferLineCycleNext" +-- lvim.keys.normal_mode[""] = ":BufferLineCyclePrev" -- unmap a default keymapping --- lvim.keys.normal_mode[""] = false --- edit a default keymapping --- lvim.keys.normal_mode[""] = ":q" +-- vim.keymap.del("n", "") +-- override a default keymapping +-- lvim.keys.normal_mode[""] = ":q" -- or vim.keymap.set("n", "", ":q" ) -- 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"] = "ToggleTerm" -- Use which-key to add extra bindings with the leader-key prefix -- lvim.builtin.which_key.mappings["P"] = { "Telescope projects", "Projects" } -lvim.builtin.which_key.mappings["d"] = { +lvim.builtin.which_key.mappings["t"] = { name = "+Trouble", r = { "Trouble lsp_references", "References" }, f = { "Trouble lsp_definitions", "Definitions" }, - d = { "Trouble lsp_document_diagnostics", "Diagnostics" }, + d = { "Trouble document_diagnostics", "Diagnostics" }, q = { "Trouble quickfix", "QuickFix" }, l = { "Trouble loclist", "LocationList" }, - w = { "Trouble lsp_workspace_diagnostics", "Diagnostics" }, - c = { "TroubleClose", "Close" }, + w = { "Trouble workspace_diagnostics", "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 +-- 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 @@ -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", "", rt.hover_actions.hover_actions, { buffer = bufnr }) + -- Code action groups + vim.keymap.set("n", "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, +-- }) diff --git a/to_install.txt b/to_install.txt new file mode 100644 index 0000000..9c2dc2d --- /dev/null +++ b/to_install.txt @@ -0,0 +1,6 @@ +Installer : +- exa +- bat +- fd +- ripgrep +- glow diff --git a/zshrc b/zshrc index f87795d..f6135d3 100644 --- a/zshrc +++ b/zshrc @@ -110,6 +110,10 @@ alias mpv4='mpv --ytdl-raw-options=force-ipv4=' alias zshconfig="vim ~/.zshrc" alias ohmyzsh="cd ~/.oh-my-zsh" +# cli replacement +alias cat='bat' +alias grep='rg' + # ls alias ls='exa --icons' alias l='ls -lb'