" automatische Installation von vim-plug let data_dir = has('nvim') ? stdpath('data') . '/site' : '~/.vim' if empty(glob(data_dir . '/autoload/plug.vim')) silent execute '!curl -fLo '.data_dir.'/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim' endif " vim-plug call plug#begin() Plug 'mattn/emmet-vim' Plug 'nvim-tree/nvim-web-devicons' Plug 'nvim-tree/nvim-tree.lua' Plug 'preservim/tagbar' Plug 'romainl/vim-cool' Plug 'simnalamburt/vim-mundo' Plug 'tpope/vim-repeat' Plug 'tpope/vim-surround' Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'} Plug 'neovim/nvim-lspconfig' Plug 'windwp/nvim-autopairs' Plug 'windwp/nvim-ts-autotag' Plug 'hrsh7th/nvim-cmp' Plug 'L3MON4D3/LuaSnip' Plug 'saadparwaiz1/cmp_luasnip' Plug 'rafamadriz/friendly-snippets' Plug 'hrsh7th/cmp-nvim-lsp' Plug 'hrsh7th/cmp-buffer' " Plug 'hrsh7th/cmp-path' " Plug 'hrsh7th/cmp-cmdline' Plug 'lewis6991/gitsigns.nvim' Plug 'RRethy/vim-illuminate' " Telescope Plug 'nvim-lua/plenary.nvim' Plug 'nvim-telescope/telescope.nvim' Plug 'cocopon/iceberg.vim' call plug#end() " EMMET let g:user_emmet_install_global=0 let g:user_emmet_leader_key='' " Tagbar let g:tagbar_ctags_bin='/usr/local/bin/uctags' " Vimundo let g:mundo_right=1 let g:mundo_width=40 let g:mundo_preview_height=30 lua << EOF -- nvim-tree vim.g.loaded_netrw = 1 vim.g.loaded_netrwPlugin = 1 require("nvim-tree").setup({ sort = { sorter = "case_sensitive", }, view = { adaptive_size = true, }, renderer = { group_empty = true, }, filters = { dotfiles = true, }, }) require('nvim-treesitter.configs').setup { ensure_installed = { "c", "cpp", "lua", "vim", "vimdoc", "typescript", "python", "html", "go", "gomod", "gosum" }, sync_install = false, auto_install = false, highlight = { enable = true, additional_vim_regex_highlighting = true, }, indent = { enable = true, } } require('nvim-autopairs').setup() require('nvim-ts-autotag').setup() local capabilities = require('cmp_nvim_lsp').default_capabilities() capabilities.textDocument.completion.completionItem.snippetSupport = true local lspconfig = require('lspconfig') lspconfig.clangd.setup{ cmd = { 'clangd15' }, capabilities = capabilities } lspconfig.lua_ls.setup{ settings = { Lua = { runtime = { version = 'LuaJIT', }, diagnostics = { globals = {'vim'}, }, workspace = { library = vim.api.nvim_get_runtime_file("", true), }, telemetry = { enable = false, }, }, }, capabilities = capabilities } lspconfig.cssls.setup{ capabilities = capabilities } lspconfig.html.setup{ capabilities = capabilities } lspconfig.ts_ls.setup{ capabilities = capabilities } lspconfig.vimls.setup{ capabilities = capabilities } lspconfig.jsonls.setup{ capabilities = capabilities } lspconfig.gopls.setup{ capabilities = capabilities } local project_library_path = "/home/t/.local/lib/node_modules" local ng_cmd = {"ngserver", "--stdio", "--tsProbeLocations", project_library_path , "--ngProbeLocations", project_library_path} lspconfig.angularls.setup{ capabilities = capabilities, cmd = ng_cmd, on_new_config = function(new_config,new_root_dir) new_config.cmd = ng_cmd end, } lspconfig.markdown_oxide.setup{ capabilities = capabilities, on_attach = on_attach, cmd = { 'markdown-oxide' } } require('gitsigns').setup() require("luasnip.loaders.from_vscode").lazy_load() local cmp = require('cmp') cmp.setup{ snippet = { expand = function(args) require('luasnip').lsp_expand(args.body) end, }, window = { completion = cmp.config.window.bordered(), documentation = cmp.config.window.bordered(), }, mapping = cmp.mapping.preset.insert{ [''] = cmp.mapping.scroll_docs(-4), [''] = cmp.mapping.scroll_docs(4), [''] = cmp.mapping.complete(), [''] = cmp.mapping.abort(), [''] = cmp.mapping.confirm({ select = true }), }, sources = cmp.config.sources{ { name = 'nvim_lsp', option = { markdown_oxide = { keyword_pattern = [[\(\k\| \|\/\|#\)\+]] } } }, { name = 'luasnip' }, }, { { name = 'buffer' }, } } local cmp_autopairs = require('nvim-autopairs.completion.cmp') cmp.event:on( 'confirm_done', cmp_autopairs.on_confirm_done() ) -- default configuration require('illuminate').configure({ -- providers: provider used to get references in the buffer, ordered by priority providers = { 'lsp', 'treesitter', 'regex', }, -- delay: delay in milliseconds delay = 50, -- filetype_overrides: filetype specific overrides. -- The keys are strings to represent the filetype while the values are tables that -- supports the same keys passed to .configure except for filetypes_denylist and filetypes_allowlist filetype_overrides = {}, -- filetypes_denylist: filetypes to not illuminate, this overrides filetypes_allowlist filetypes_denylist = { 'dirbuf', 'dirvish', 'fugitive', }, -- filetypes_allowlist: filetypes to illuminate, this is overridden by filetypes_denylist -- You must set filetypes_denylist = {} to override the defaults to allow filetypes_allowlist to take effect filetypes_allowlist = {}, -- modes_denylist: modes to not illuminate, this overrides modes_allowlist -- See `:help mode()` for possible values modes_denylist = {}, -- modes_allowlist: modes to illuminate, this is overridden by modes_denylist -- See `:help mode()` for possible values modes_allowlist = {}, -- providers_regex_syntax_denylist: syntax to not illuminate, this overrides providers_regex_syntax_allowlist -- Only applies to the 'regex' provider -- Use :echom synIDattr(synIDtrans(synID(line('.'), col('.'), 1)), 'name') providers_regex_syntax_denylist = {}, -- providers_regex_syntax_allowlist: syntax to illuminate, this is overridden by providers_regex_syntax_denylist -- Only applies to the 'regex' provider -- Use :echom synIDattr(synIDtrans(synID(line('.'), col('.'), 1)), 'name') providers_regex_syntax_allowlist = {}, -- under_cursor: whether or not to illuminate under the cursor under_cursor = true, -- large_file_cutoff: number of lines at which to use large_file_config -- The `under_cursor` option is disabled when this cutoff is hit large_file_cutoff = nil, -- large_file_config: config to use for large files (based on large_file_cutoff). -- Supports the same keys passed to .configure -- If nil, vim-illuminate will be disabled for large files. large_file_overrides = nil, -- min_count_to_highlight: minimum number of matches required to perform highlighting min_count_to_highlight = 1, -- should_enable: a callback that overrides all other settings to -- enable/disable illumination. This will be called a lot so don't do -- anything expensive in it. should_enable = function(bufnr) return true end, -- case_insensitive_regex: sets regex case sensitivity case_insensitive_regex = false, }) -- change the highlight style vim.api.nvim_set_hl(0, "IlluminatedWordText", { link = "CursorLine" }) vim.api.nvim_set_hl(0, "IlluminatedWordRead", { link = "CursorLine" }) vim.api.nvim_set_hl(0, "IlluminatedWordWrite", { link = "CursorLine" }) --- auto update the highlight style on colorscheme change vim.api.nvim_create_autocmd({ "ColorScheme" }, { pattern = { "*" }, callback = function(ev) vim.api.nvim_set_hl(0, "IlluminatedWordText", { link = "CursorLine" }) vim.api.nvim_set_hl(0, "IlluminatedWordRead", { link = "CursorLine" }) vim.api.nvim_set_hl(0, "IlluminatedWordWrite", { link = "CursorLine" }) end }) EOF