diff --git a/.config/nvim/after/plugin/indent-blankline.lua b/.config/nvim/after/plugin/indent-blankline.lua index 3390094..57f6b3f 100644 --- a/.config/nvim/after/plugin/indent-blankline.lua +++ b/.config/nvim/after/plugin/indent-blankline.lua @@ -4,7 +4,7 @@ require("ibl").setup({ indent = { char = " "}, whitespace = { }, scope = { char = "▎", - highlight = "IndentBlanklineContextChar", + -- highlight = "IndentBlanklineContextChar", show_start = false, show_end = false, include = { node_type = { python = { "if_statement", diff --git a/.config/nvim/after/plugin/lsp.lua b/.config/nvim/after/plugin/lsp.lua index ce0ec39..b02f164 100644 --- a/.config/nvim/after/plugin/lsp.lua +++ b/.config/nvim/after/plugin/lsp.lua @@ -32,6 +32,7 @@ local servers = { pylsp = { plugins = { -- I don't want pylsp linter/formatter + black = { enabled = false, }, autopep8 = { enabled = false, }, flake8 = { enabled = false, }, mccabe = { enabled = false, }, @@ -47,11 +48,13 @@ local servers = { filetypes = { "python" }, init_options = { settings = { - -- configuration = "", -- Custom config for ruff to use + configuration = "~/.local/share/nvim/ruff.toml", -- Custom config for ruff to use exclude = { "__about__.py" }, -- Files to be excluded by ruff checking lineLength = 160, -- Line length to pass to ruff checking and formatting organizeImports = true, - preview = false, -- Whether to enable the preview style linting and formatting. + format = { + preview = false, -- Whether to enable the preview style linting and formatting. + }, lint = { enable = true, -- Enable linting -- select = { "F" }, -- Rules to be enabled by ruff diff --git a/.config/nvim/after/plugin/treesitter.lua b/.config/nvim/after/plugin/treesitter.lua index 0275e1a..1f2d129 100644 --- a/.config/nvim/after/plugin/treesitter.lua +++ b/.config/nvim/after/plugin/treesitter.lua @@ -1,6 +1,6 @@ require'nvim-treesitter.configs'.setup { -- A list of parser names, or "all" (the five listed parsers should always be installed) - ensure_installed = { "bash", "c", "cpp", "cuda", "latex", "lua", "markdown", "rust", "vim", "vimdoc" }, + ensure_installed = { "bash", "c", "cpp", "cuda", "latex", "lua", "markdown", "python", "rust", "vim", "vimdoc" }, -- Install parsers synchronously (only applied to `ensure_installed`) sync_install = false, @@ -24,33 +24,17 @@ require'nvim-treesitter.configs'.setup { }, } local vim = vim -local opt = vim.opt -local api = vim.api -local M = {} -opt.foldmethod = "expr" -opt.foldexpr = "nvim_treesitter#foldexpr()" - --- function to create a list of commands and convert them to autocommands --------- This function is taken from https://github.com/norcalli/nvim_utils -function M.nvim_create_augroups(definitions) - for group_name, definition in pairs(definitions) do - api.nvim_command('augroup '..group_name) - api.nvim_command('autocmd!') - for _, def in ipairs(definition) do - local command = table.concat(vim.tbl_flatten{'autocmd', def}, ' ') - api.nvim_command(command) +vim.o.foldmethod = 'expr' +-- Default to treesitter folding +vim.o.foldexpr = 'v:lua.vim.treesitter.foldexpr()' +-- Prefer LSP folding if client supports it +vim.api.nvim_create_autocmd('LspAttach', { + callback = function(args) + local client = vim.lsp.get_client_by_id(args.data.client_id) + if client:supports_method('textDocument/foldingRange') then + local win = vim.api.nvim_get_current_win() + vim.wo[win][0].foldexpr = 'v:lua.vim.lsp.foldexpr()' end - api.nvim_command('augroup END') - end -end - - -local autoCommands = { - -- other autocommands - open_folds = { - {"BufReadPost,FileReadPost", "*", "normal zR"} - } -} - -M.nvim_create_augroups(autoCommands) + end, +}) diff --git a/.config/nvim/lua/config/gruvbox.lua b/.config/nvim/lua/config/gruvbox.lua index 26f96ce..f1c1a32 100644 --- a/.config/nvim/lua/config/gruvbox.lua +++ b/.config/nvim/lua/config/gruvbox.lua @@ -22,4 +22,4 @@ require("gruvbox").setup({ dim_inactive = false, transparent_mode = true, }) -vim.cmd.colorscheme("gruvbox") +vim.cmd("colorscheme gruvbox") diff --git a/.config/nvim/lua/config/init.lua b/.config/nvim/lua/config/init.lua index e3660af..d989097 100644 --- a/.config/nvim/lua/config/init.lua +++ b/.config/nvim/lua/config/init.lua @@ -1,4 +1,4 @@ +require("config.pckr") require("config.remap") require("config.options") require("config.gruvbox") -require("config.packer") diff --git a/.config/nvim/lua/config/packer.lua b/.config/nvim/lua/config/pckr.lua similarity index 64% rename from .config/nvim/lua/config/packer.lua rename to .config/nvim/lua/config/pckr.lua index 9aa70a2..073bd48 100644 --- a/.config/nvim/lua/config/packer.lua +++ b/.config/nvim/lua/config/pckr.lua @@ -1,39 +1,48 @@ -return require('packer').startup(function(use) - -- Packer can manage itself - use 'wbthomason/packer.nvim' +local function bootstrap_pckr() + local pckr_path = vim.fn.stdpath("data") .. "/pckr/pckr.nvim" - use { + if not (vim.uv or vim.loop).fs_stat(pckr_path) then + vim.fn.system({ + 'git', + 'clone', + "--filter=blob:none", + 'https://github.com/lewis6991/pckr.nvim', + pckr_path + }) + end + + vim.opt.rtp:prepend(pckr_path) +end + +bootstrap_pckr() + +require('pckr').add{ + { 'nvim-telescope/telescope.nvim', tag = '0.1.1', -- or branch = '0.1.x', requires = { {'nvim-lua/plenary.nvim'} } - } - use "ellisonleao/gruvbox.nvim" - - use { + }; + "ellisonleao/gruvbox.nvim"; + { 'nvim-treesitter/nvim-treesitter', run = function() local ts_update = require('nvim-treesitter.install').update({ with_sync = true }) ts_update() end, - } - use 'nvim-treesitter/playground' - use { + }; + { 'ThePrimeagen/harpoon', requires = { {'nvim-lua/plenary.nvim'} } - } - use 'mbbill/undotree' - use 'tpope/vim-fugitive' - use 'airblade/vim-gitgutter' - - use 'lukas-reineke/indent-blankline.nvim' - - use 'JoosepAlviste/nvim-ts-context-commentstring' - use 'numToStr/Comment.nvim' - - use 'lervag/vimtex' - - use { + }; + 'mbbill/undotree'; + 'tpope/vim-fugitive'; + 'airblade/vim-gitgutter'; + 'lukas-reineke/indent-blankline.nvim'; + 'JoosepAlviste/nvim-ts-context-commentstring'; + 'numToStr/Comment.nvim'; + 'lervag/vimtex'; + { 'neovim/nvim-lspconfig', requires = { -- LSP Support @@ -57,7 +66,6 @@ return require('packer').startup(function(use) -- Utils {'j-hui/fidget.nvim'}, {'folke/neodev.nvim'} - } - } - -end) + }; + }; +}