From 878d7869d70c71a0afb4ad52f4247f87cfd00d88 Mon Sep 17 00:00:00 2001 From: Jordan Holt Date: Mon, 4 Jul 2022 21:44:59 +0100 Subject: [PATCH] Add LSP and telescope config --- .config/nvim/lua/config/keymap.lua | 2 +- .config/nvim/lua/config/lsp.lua | 32 ++++++++++++++++++ .config/nvim/lua/config/plugins.lua | 6 ++-- .config/nvim/lua/config/telescope.lua | 46 ++++++++++++++++++++++++++ .config/nvim/lua/config/treesitter.lua | 8 ++++- 5 files changed, 90 insertions(+), 4 deletions(-) create mode 100644 .config/nvim/lua/config/lsp.lua create mode 100644 .config/nvim/lua/config/telescope.lua diff --git a/.config/nvim/lua/config/keymap.lua b/.config/nvim/lua/config/keymap.lua index f27bd3d..9d42fca 100644 --- a/.config/nvim/lua/config/keymap.lua +++ b/.config/nvim/lua/config/keymap.lua @@ -1,5 +1,5 @@ local keymap = vim.keymap.set -local opts = { silent = true } +local opts = { noremap = true, silent = true } vim.g.mapleader = "," diff --git a/.config/nvim/lua/config/lsp.lua b/.config/nvim/lua/config/lsp.lua new file mode 100644 index 0000000..2f2a6c8 --- /dev/null +++ b/.config/nvim/lua/config/lsp.lua @@ -0,0 +1,32 @@ +require("nvim-lsp-installer").setup({ + ensure_installed = { + "bashls", + "cmake", + "cssls", + "dockerls", + "eslint", + "graphql", + "html", + "jsonls", + "tsserver", + "ltex", + "sumneko_lua", + "marksman", + "pylsp", + "rust_analyzer", + "stylelint_lsp", + "vimls", + "lemminx", + "yamlls", + "zls", + }, + ui = { + check_outdated_servers_on_open = false, + icons = { + server_installed = "", + server_pending = "", + server_uninstalled = "", + }, + }, +}) + diff --git a/.config/nvim/lua/config/plugins.lua b/.config/nvim/lua/config/plugins.lua index ee1fa31..51f3d90 100644 --- a/.config/nvim/lua/config/plugins.lua +++ b/.config/nvim/lua/config/plugins.lua @@ -39,7 +39,6 @@ return packer.startup(function(use) use { "wbthomason/packer.nvim", opt = true } use { "mbbill/undotree" } use { "nvim-lua/plenary.nvim" } - use { "nvim-telescope/telescope.nvim" } use { "nvim-treesitter/nvim-treesitter", event = "BufEnter", @@ -50,6 +49,7 @@ return packer.startup(function(use) -- Editing use { "godlygeek/tabular" } + use { "JoosepAlviste/nvim-ts-context-commentstring", after = "nvim-treesitter" } use { "kana/vim-textobj-user" } use { "mg979/vim-visual-multi", branch = "master" } use { "terryma/vim-expand-region" } @@ -66,11 +66,13 @@ return packer.startup(function(use) use { "markonm/traces.vim" } -- Searching + use { "nvim-telescope/telescope.nvim", after = "nvim-treesitter", config = [[require('config.telescope')]] } + use { "cljoly/telescope-repo.nvim", requires = "telescope.nvim" } use { "dyng/ctrlsf.vim" } -- LSP use { "neovim/nvim-lspconfig" } - use { "williamboman/nvim-lsp-installer" } + use { "williamboman/nvim-lsp-installer", config = [[require('config.lsp')]] } use { "jose-elias-alvarez/null-ls.nvim" } if PACKER_BOOTSTRAP then diff --git a/.config/nvim/lua/config/telescope.lua b/.config/nvim/lua/config/telescope.lua new file mode 100644 index 0000000..bbd5f03 --- /dev/null +++ b/.config/nvim/lua/config/telescope.lua @@ -0,0 +1,46 @@ +local status_ok, telescope = pcall(require, "telescope") +if not status_ok then + return +end + +local actions = require("telescope.actions") + +telescope.setup({ + defaults = { + file_ignore_patterns = { ".git/", "node_modules" }, + }, + mappings = { + i = { + [""] = actions.cycle_history_next, + [""] = actions.cycle_history_prev, + [""] = actions.move_selection_next, + [""] = actions.move_selection_previous, + }, + }, + extensions = { + repo = { + list = { + fd_opts = { + "--no-ignore-vcs", + }, + search_dirs = { + "~/projects", + "~/repos", + "~/workspace", + }, + }, + }, + }, +}) + +telescope.load_extension("repo") + +local keymap = vim.keymap.set +local opts = { noremap = true, silent = true } + +keymap("n", "ff", "Telescope find_files", opts) +keymap("n", "fg", "Telescope live_grep", opts) +keymap("n", "fb", "Telescope buffers", opts) +keymap("n", "fh", "Telescope help_tags", opts) +keymap("n", "fr", "Telescope repo list", opts) + diff --git a/.config/nvim/lua/config/treesitter.lua b/.config/nvim/lua/config/treesitter.lua index 63b6dde..c1688af 100644 --- a/.config/nvim/lua/config/treesitter.lua +++ b/.config/nvim/lua/config/treesitter.lua @@ -46,6 +46,12 @@ require("nvim-treesitter.configs").setup({ }, indent = { enable = true, - } + }, + context_commentstring = { + enable = true, + }, }) +vim.opt.foldmethod = "expr" +vim.opt.foldexpr = "nvim_treesitter#foldexpr()" +