From 83d0eff656493865ceac5b115e1923aa7327ee20 Mon Sep 17 00:00:00 2001 From: CRy386i Date: Sat, 30 Nov 2024 00:32:37 +0200 Subject: [PATCH] fix spaces As it turns out, you not confused with tabs and spaces settings. And in some editors it's has some stange, kinda weird optins e.g "shiftwidth", "tabstop", and "expandtab" (inserting spaces). Kinda weird and I don't understand why? --- .gitignore | 1 + lua/base/tabs.lua | 11 +- lua/plugins/lazy.lua | 470 +++++++++++++++++++++---------------------- 3 files changed, 242 insertions(+), 240 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a6c57f5 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +*.json diff --git a/lua/base/tabs.lua b/lua/base/tabs.lua index 2cc434a..6e75514 100644 --- a/lua/base/tabs.lua +++ b/lua/base/tabs.lua @@ -5,20 +5,21 @@ local g = vim.g -- Set the numbers of whitespace characters when shifting with "<" or ">". -- In fact, in spite of expandtab, the terminal still displays whitespace charaters, -- so let's set the number of whitespace characters for ones press of these buttons. -opt.shiftwidth = 2 +opt.shiftwidth = 4 -- one tab == two whitespace characters in new line. -- Pressing will insert tabs. Tabs are drawn as whitespace. -- that's why we have to set that each tab on a new line is two whitespace. -opt.tabstop = 2 +opt.tabstop = 4 --- Adjust new line to the previous indentation +-- Adjust new line to the previous indentation. opt.smartindent = true -opt.expandtab = false +-- On pressing tab, insert 4 spaces. +opt.expandtab = true opt.smarttab = true opt.scrolloff = 8 --- Show unprintable +-- Show unprintable. opt.list = true opt.listchars = {tab = '⁞ ', eol = '¬', trail = '·'} diff --git a/lua/plugins/lazy.lua b/lua/plugins/lazy.lua index 0560524..00e4751 100644 --- a/lua/plugins/lazy.lua +++ b/lua/plugins/lazy.lua @@ -13,252 +13,252 @@ vim.opt.rtp:prepend(lazypath) -- Install plugins using lazy require('lazy').setup({ - { 'tpope/vim-commentary', }, - { 'tpope/vim-fugitive', }, - { 'sheerun/vim-polyglot', - init = function() - -- vim-polyglot confusingly registers *.comp both for perl and for glsl - vim.api.nvim_set_var('polyglot_disabled', {'perl'}) - end, - }, - { - 'morhetz/gruvbox', - lazy = false, - priority = 1000, - config = function() - vim.opt.background = 'dark' - vim.g.gruvbox_italic = 1 - vim.cmd([[colorscheme gruvbox]]) - end, - }, - { - "folke/tokyonight.nvim", - lazy = true, - -- config = function() - -- -- load the colorscheme here - -- vim.cmd([[colorscheme tokyonight]]) - -- end, - }, - { 'nvim-telescope/telescope-fzf-native.nvim', - build = 'cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release && cmake --build build --config Release && cmake --install build --prefix build' - }, - { - 'nvim-telescope/telescope.nvim', tag = '0.1.6', - dependencies = { 'nvim-lua/plenary.nvim' }, - config = function() - local telescope = require('telescope') + { 'tpope/vim-commentary', }, + { 'tpope/vim-fugitive', }, + { 'sheerun/vim-polyglot', + init = function() + -- vim-polyglot confusingly registers *.comp both for perl and for glsl + vim.api.nvim_set_var('polyglot_disabled', {'perl'}) + end, + }, + { + 'morhetz/gruvbox', + lazy = false, + priority = 1000, + config = function() + vim.opt.background = 'dark' + vim.g.gruvbox_italic = 1 + vim.cmd([[colorscheme gruvbox]]) + end, + }, + { + "folke/tokyonight.nvim", + lazy = true, + -- config = function() + -- -- load the colorscheme here + -- vim.cmd([[colorscheme tokyonight]]) + -- end, + }, + { 'nvim-telescope/telescope-fzf-native.nvim', + build = 'cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release && cmake --build build --config Release && cmake --install build --prefix build' + }, + { + 'nvim-telescope/telescope.nvim', tag = '0.1.6', + dependencies = { 'nvim-lua/plenary.nvim' }, + config = function() + local telescope = require('telescope') - telescope.setup{ - -- defaults = { - -- } - extensions = { - fzf = { - fuzzy = true, -- false will only do exact matching - override_generic_sorter = true, -- override the generic sorter - override_file_sorter = true, -- override the file sorter - case_mode = "smart_case", -- or "ignore_case" or "respect_case" - -- the default case_mode is "smart_case" - } - } - } + telescope.setup{ + -- defaults = { + -- } + extensions = { + fzf = { + fuzzy = true, -- false will only do exact matching + override_generic_sorter = true, -- override the generic sorter + override_file_sorter = true, -- override the file sorter + case_mode = "smart_case", -- or "ignore_case" or "respect_case" + -- the default case_mode is "smart_case" + } + } + } - --telescope.load_extension('fzy') - telescope.load_extension('fzf') + --telescope.load_extension('fzy') + telescope.load_extension('fzf') - local builtin = require('telescope.builtin') - vim.keymap.set('n', '', builtin.find_files, {}) - vim.keymap.set('n', 'ft', builtin.treesitter, {}) - vim.keymap.set('n', 'fg', builtin.live_grep, {}) - vim.keymap.set('n', 'fb', builtin.buffers, {}) - vim.keymap.set('n', 'fh', builtin.help_tags, {}) - end - }, - { "nvim-treesitter/nvim-treesitter", - build = ":TSUpdate", - config = function() - require("nvim-treesitter.configs").setup { - ensure_installed = { "c", "cpp", "pascal", "lua", "glsl", "yaml" }, - highlight = { enable = true, } - } - end - }, - { - 'neovim/nvim-lspconfig', - config = function() - -- Setup language servers. - local lspconfig = require('lspconfig') - lspconfig.clangd.setup {} - lspconfig.neocmake.setup {} + local builtin = require('telescope.builtin') + vim.keymap.set('n', '', builtin.find_files, {}) + vim.keymap.set('n', 'ft', builtin.treesitter, {}) + vim.keymap.set('n', 'fg', builtin.live_grep, {}) + vim.keymap.set('n', 'fb', builtin.buffers, {}) + vim.keymap.set('n', 'fh', builtin.help_tags, {}) + end + }, + { "nvim-treesitter/nvim-treesitter", + build = ":TSUpdate", + config = function() + require("nvim-treesitter.configs").setup { + ensure_installed = { "c", "cpp", "pascal", "lua", "glsl", "yaml" }, + highlight = { enable = true, } + } + end + }, + { + 'neovim/nvim-lspconfig', + config = function() + -- Setup language servers. + local lspconfig = require('lspconfig') + --lspconfig.clangd.setup {} + --lspconfig.neocmake.setup {} - -- Global mappings. - -- See `:help vim.diagnostic.*` for documentation on any of the below functions - vim.keymap.set('n', 'e', vim.diagnostic.open_float) - vim.keymap.set('n', '[d', vim.diagnostic.goto_prev) - vim.keymap.set('n', ']d', vim.diagnostic.goto_next) - vim.keymap.set('n', 'q', vim.diagnostic.setloclist) + -- Global mappings. + -- See `:help vim.diagnostic.*` for documentation on any of the below functions + vim.keymap.set('n', 'e', vim.diagnostic.open_float) + vim.keymap.set('n', '[d', vim.diagnostic.goto_prev) + vim.keymap.set('n', ']d', vim.diagnostic.goto_next) + vim.keymap.set('n', 'q', vim.diagnostic.setloclist) - -- Use LspAttach autocommand to only map the following keys - -- after the language server attaches to the current buffer - vim.api.nvim_create_autocmd('LspAttach', { - group = vim.api.nvim_create_augroup('UserLspConfig', {}), - callback = function(ev) - -- Enable completion triggered by - vim.bo[ev.buf].omnifunc = 'v:lua.vim.lsp.omnifunc' + -- Use LspAttach autocommand to only map the following keys + -- after the language server attaches to the current buffer + vim.api.nvim_create_autocmd('LspAttach', { + group = vim.api.nvim_create_augroup('UserLspConfig', {}), + callback = function(ev) + -- Enable completion triggered by + vim.bo[ev.buf].omnifunc = 'v:lua.vim.lsp.omnifunc' - -- Buffer local mappings. - -- See `:help vim.lsp.*` for documentation on any of the below functions - local opts = { buffer = ev.buf } - vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, opts) - vim.keymap.set('n', 'gd', vim.lsp.buf.definition, opts) - vim.keymap.set('n', 'K', vim.lsp.buf.hover, opts) - vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, opts) - vim.keymap.set('n', '', vim.lsp.buf.signature_help, opts) - vim.keymap.set('n', 'wa', vim.lsp.buf.add_workspace_folder, opts) - vim.keymap.set('n', 'wr', vim.lsp.buf.remove_workspace_folder, opts) - vim.keymap.set('n', 'wl', function() - print(vim.inspect(vim.lsp.buf.list_workspace_folders())) - end, opts) - vim.keymap.set('n', 'D', vim.lsp.buf.type_definition, opts) - vim.keymap.set('n', 'rn', vim.lsp.buf.rename, opts) - vim.keymap.set({ 'n', 'v' }, 'ca', vim.lsp.buf.code_action, opts) - vim.keymap.set('n', 'gr', vim.lsp.buf.references, opts) - vim.keymap.set('n', 'f', function() - vim.lsp.buf.format { async = true } - end, opts) - end, - }) - end - }, - { - 'hrsh7th/nvim-cmp', - dependencies = { - 'neovim/nvim-lspconfig', - 'hrsh7th/cmp-nvim-lsp', - 'hrsh7th/cmp-buffer', - 'hrsh7th/cmp-path', - 'hrsh7th/cmp-cmdline', - 'hrsh7th/cmp-vsnip', - 'hrsh7th/vim-vsnip', - 'hrsh7th/cmp-nvim-lsp-signature-help', - }, - config = function() - local cmp = require'cmp' - cmp.setup({ - snippet = { - -- REQUIRED - you must specify a snippet engine - expand = function(args) - vim.fn["vsnip#anonymous"](args.body) -- For `vsnip` users. - -- require('luasnip').lsp_expand(args.body) -- For `luasnip` users. - -- require('snippy').expand_snippet(args.body) -- For `snippy` users. - -- vim.fn["UltiSnips#Anon"](args.body) -- For `ultisnips` users. - 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 }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items. - }), - sources = cmp.config.sources({ - { name = 'nvim_lsp' }, - { name = 'vsnip' }, -- For vsnip users. - -- { name = 'luasnip' }, -- For luasnip users. - -- { name = 'ultisnips' }, -- For ultisnips users. - -- { name = 'snippy' }, -- For snippy users. - }, { - { name = 'buffer' }, - { name = 'nvim_lsp_signature_help' }, - }) - }) + -- Buffer local mappings. + -- See `:help vim.lsp.*` for documentation on any of the below functions + local opts = { buffer = ev.buf } + vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, opts) + vim.keymap.set('n', 'gd', vim.lsp.buf.definition, opts) + vim.keymap.set('n', 'K', vim.lsp.buf.hover, opts) + vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, opts) + vim.keymap.set('n', '', vim.lsp.buf.signature_help, opts) + vim.keymap.set('n', 'wa', vim.lsp.buf.add_workspace_folder, opts) + vim.keymap.set('n', 'wr', vim.lsp.buf.remove_workspace_folder, opts) + vim.keymap.set('n', 'wl', function() + print(vim.inspect(vim.lsp.buf.list_workspace_folders())) + end, opts) + vim.keymap.set('n', 'D', vim.lsp.buf.type_definition, opts) + vim.keymap.set('n', 'rn', vim.lsp.buf.rename, opts) + vim.keymap.set({ 'n', 'v' }, 'ca', vim.lsp.buf.code_action, opts) + vim.keymap.set('n', 'gr', vim.lsp.buf.references, opts) + vim.keymap.set('n', 'f', function() + vim.lsp.buf.format { async = true } + end, opts) + end, + }) + end + }, + { + 'hrsh7th/nvim-cmp', + dependencies = { + 'neovim/nvim-lspconfig', + 'hrsh7th/cmp-nvim-lsp', + 'hrsh7th/cmp-buffer', + 'hrsh7th/cmp-path', + 'hrsh7th/cmp-cmdline', + 'hrsh7th/cmp-vsnip', + 'hrsh7th/vim-vsnip', + 'hrsh7th/cmp-nvim-lsp-signature-help', + }, + config = function() + local cmp = require'cmp' + cmp.setup({ + snippet = { + -- REQUIRED - you must specify a snippet engine + expand = function(args) + vim.fn["vsnip#anonymous"](args.body) -- For `vsnip` users. + -- require('luasnip').lsp_expand(args.body) -- For `luasnip` users. + -- require('snippy').expand_snippet(args.body) -- For `snippy` users. + -- vim.fn["UltiSnips#Anon"](args.body) -- For `ultisnips` users. + 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 }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items. + }), + sources = cmp.config.sources({ + { name = 'nvim_lsp' }, + { name = 'vsnip' }, -- For vsnip users. + -- { name = 'luasnip' }, -- For luasnip users. + -- { name = 'ultisnips' }, -- For ultisnips users. + -- { name = 'snippy' }, -- For snippy users. + }, { + { name = 'buffer' }, + { name = 'nvim_lsp_signature_help' }, + }) + }) - -- Set configuration for specific filetype. - cmp.setup.filetype('gitcommit', { - sources = cmp.config.sources({ - { name = 'git' }, -- You can specify the `git` source if [you were installed it](https://github.com/petertriho/cmp-git). - }, { - { name = 'buffer' }, - }) - }) - - cmp.setup.filetype('cmake', { - sources = cmp.config.sources({ - { name = 'cmake', "CMakeLists.txt" }, - }, { - { name = 'buffer' }, - }) - }) + -- Set configuration for specific filetype. + cmp.setup.filetype('gitcommit', { + sources = cmp.config.sources({ + { name = 'git' }, -- You can specify the `git` source if [you were installed it](https://github.com/petertriho/cmp-git). + }, { + { name = 'buffer' }, + }) + }) - -- Use buffer source for `/` and `?` (if you enabled `native_menu`, this won't work anymore). - cmp.setup.cmdline({ '/', '?' }, { - mapping = cmp.mapping.preset.cmdline(), - sources = { - { name = 'buffer' } - } - }) + cmp.setup.filetype('cmake', { + sources = cmp.config.sources({ + { name = 'cmake', "CMakeLists.txt" }, + }, { + { name = 'buffer' }, + }) + }) - -- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore). - cmp.setup.cmdline(':', { - mapping = cmp.mapping.preset.cmdline(), - sources = cmp.config.sources({ - { name = 'path' } - }, { - { name = 'cmdline' } - }) - }) + -- Use buffer source for `/` and `?` (if you enabled `native_menu`, this won't work anymore). + cmp.setup.cmdline({ '/', '?' }, { + mapping = cmp.mapping.preset.cmdline(), + sources = { + { name = 'buffer' } + } + }) - -- Set up lspconfig. - local capabilities = require('cmp_nvim_lsp').default_capabilities() - -- TODO Replace with each lsp server you've enabled. - require('lspconfig')['clangd'].setup { - capabilities = capabilities - } - end, - }, - { - 'stevearc/aerial.nvim', - dependencies = { 'neovim/nvim-lspconfig', }, - config = function() - require('aerial').setup({ - -- optionally use on_attach to set keymaps when aerial has attached to a buffer - on_attach = function(bufnr) - -- Jump forwards/backwards with '{' and '}' - vim.keymap.set('n', '{', 'AerialPrev', {buffer = bufnr}) - vim.keymap.set('n', '}', 'AerialNext', {buffer = bufnr}) - end - }) - -- You probably also want to set a keymap to toggle aerial - vim.keymap.set('n', '', 'AerialToggle!') - end, - } + -- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore). + cmp.setup.cmdline(':', { + mapping = cmp.mapping.preset.cmdline(), + sources = cmp.config.sources({ + { name = 'path' } + }, { + { name = 'cmdline' } + }) + }) + + -- Set up lspconfig. + local capabilities = require('cmp_nvim_lsp').default_capabilities() + -- TODO Replace with each lsp server you've enabled. + --[[require('lspconfig')['clangd'].setup { + capabilities = capabilities + }--]] + end, + }, + { + 'stevearc/aerial.nvim', + dependencies = { 'neovim/nvim-lspconfig', }, + config = function() + require('aerial').setup({ + -- optionally use on_attach to set keymaps when aerial has attached to a buffer + on_attach = function(bufnr) + -- Jump forwards/backwards with '{' and '}' + vim.keymap.set('n', '{', 'AerialPrev', {buffer = bufnr}) + vim.keymap.set('n', '}', 'AerialNext', {buffer = bufnr}) + end + }) + -- You probably also want to set a keymap to toggle aerial + vim.keymap.set('n', '', 'AerialToggle!') + end, + } }) vim.filetype.add({ - extension = { - vp = 'glsl', - fp = 'glsl', - gp = 'glsl', - vs = 'glsl', - fs = 'glsl', - gs = 'glsl', - tcs = 'glsl', - tes = 'glsl', - cs = 'glsl', - vert = 'glsl', - frag = 'glsl', - geom = 'glsl', - tess = 'glsl', - shd = 'glsl', - gls = 'glsl', - glsl = 'glsl', - rgen = 'glsl', - comp = 'glsl', - rchit = 'glsl', - rahit = 'glsl', - rmiss = 'glsl', - } + extension = { + vp = 'glsl', + fp = 'glsl', + gp = 'glsl', + vs = 'glsl', + fs = 'glsl', + gs = 'glsl', + tcs = 'glsl', + tes = 'glsl', + cs = 'glsl', + vert = 'glsl', + frag = 'glsl', + geom = 'glsl', + tess = 'glsl', + shd = 'glsl', + gls = 'glsl', + glsl = 'glsl', + rgen = 'glsl', + comp = 'glsl', + rchit = 'glsl', + rahit = 'glsl', + rmiss = 'glsl', + } })