new nvim config
This commit is contained in:
		
							parent
							
								
									a817a78a28
								
							
						
					
					
						commit
						6cd2d73319
					
				
							
								
								
									
										164
									
								
								init.lua
								
								
								
								
							
							
						
						
									
										164
									
								
								init.lua
								
								
								
								
							| 
						 | 
				
			
			@ -15,12 +15,15 @@ vim.opt.relativenumber = true
 | 
			
		|||
vim.opt.tabstop = 4
 | 
			
		||||
vim.opt.shiftwidth = 4
 | 
			
		||||
vim.opt.expandtab = true
 | 
			
		||||
vim.opt.laststatus = 3
 | 
			
		||||
-- Enable mouse mode, can be useful for resizing splits for example!
 | 
			
		||||
vim.opt.mouse = 'a'
 | 
			
		||||
 | 
			
		||||
-- Don't show the mode, since it's already in status line
 | 
			
		||||
vim.opt.showmode = false
 | 
			
		||||
 | 
			
		||||
vim.opt.swapfile = false
 | 
			
		||||
 | 
			
		||||
-- Sync clipboard between OS and Neovim.
 | 
			
		||||
vim.opt.clipboard = 'unnamedplus'
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -67,6 +70,7 @@ vim.opt.scrolloff = 10
 | 
			
		|||
vim.opt.hlsearch = true
 | 
			
		||||
vim.keymap.set('n', '<Esc>', '<cmd>nohlsearch<CR>')
 | 
			
		||||
 | 
			
		||||
vim.keymap.set('n', '<leader><F5>', vim.cmd.UndotreeToggle)
 | 
			
		||||
-- Move line up or down after highlight
 | 
			
		||||
vim.keymap.set('v', 'J', ":m '>+1<CR>gv=gv")
 | 
			
		||||
vim.keymap.set('v', 'K', ":m '<-2<CR>gv=gv")
 | 
			
		||||
| 
						 | 
				
			
			@ -134,8 +138,41 @@ vim.opt.rtp:prepend(lazypath)
 | 
			
		|||
-- [[ Configure and install plugins ]]
 | 
			
		||||
require('lazy').setup({
 | 
			
		||||
  'tpope/vim-sleuth', -- Detect tabstop and shiftwidth automatically
 | 
			
		||||
  'ThePrimeagen/vim-be-good',
 | 
			
		||||
  'mbbill/undotree',
 | 
			
		||||
 | 
			
		||||
  -- Database
 | 
			
		||||
  'tpope/vim-dadbod',
 | 
			
		||||
  'kristijanhusak/vim-dadbod-ui',
 | 
			
		||||
  'kristijanhusak/vim-dadbod-completion',
 | 
			
		||||
 | 
			
		||||
  -- best plugin ever
 | 
			
		||||
  {
 | 
			
		||||
    'stevearc/oil.nvim',
 | 
			
		||||
    opts = {},
 | 
			
		||||
    -- Optional dependencies
 | 
			
		||||
    dependencies = { 'nvim-tree/nvim-web-devicons' },
 | 
			
		||||
    config = function()
 | 
			
		||||
      require('oil').setup {
 | 
			
		||||
        default_file_explorer = true,
 | 
			
		||||
      }
 | 
			
		||||
    end,
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  {
 | 
			
		||||
    'nvim-neo-tree/neo-tree.nvim',
 | 
			
		||||
    version = '*',
 | 
			
		||||
    dependencies = {
 | 
			
		||||
      'nvim-lua/plenary.nvim',
 | 
			
		||||
      'nvim-tree/nvim-web-devicons', -- not strictly required, but recommended
 | 
			
		||||
      'MunifTanjim/nui.nvim',
 | 
			
		||||
    },
 | 
			
		||||
    -- config = function()
 | 
			
		||||
    --   require('neo-tree').setup {}
 | 
			
		||||
    -- end,
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  'ThePrimeagen/vim-be-good',
 | 
			
		||||
  --[[ {
 | 
			
		||||
    'tjdevries/colorbuddy.nvim',
 | 
			
		||||
    config = function()
 | 
			
		||||
      require('colorbuddy').colorscheme 'tokyonight-night'
 | 
			
		||||
| 
						 | 
				
			
			@ -166,7 +203,7 @@ require('lazy').setup({
 | 
			
		|||
      -- I've always liked lua function calls to be blue. I don't know why.
 | 
			
		||||
      -- Group.new('@function.call.lua', c.blue:dark(), nil, nil)
 | 
			
		||||
    end,
 | 
			
		||||
  },
 | 
			
		||||
  }, ]]
 | 
			
		||||
 | 
			
		||||
  -- NOTE: Plugins can also be added by using a table,
 | 
			
		||||
  -- with the first argument being the link and the following
 | 
			
		||||
| 
						 | 
				
			
			@ -349,6 +386,9 @@ require('lazy').setup({
 | 
			
		|||
      -- vim.keymap.set('n', '<leader>s.', builtin.oldfiles, { desc = '[S]earch Recent Files ("." for repeat)' })
 | 
			
		||||
      -- vim.keymap.set('n', '<leader>fb', ':Telescope file_browser<CR>', { noremap = true })
 | 
			
		||||
 | 
			
		||||
      -- Oil nvim
 | 
			
		||||
      vim.keymap.set('n', '-', '<CMD>Oil<CR>', { desc = 'Open parent directory' })
 | 
			
		||||
 | 
			
		||||
      -- Slightly advanced example of overriding default behavior and theme
 | 
			
		||||
      vim.keymap.set('n', '<leader>/', function()
 | 
			
		||||
        -- You can pass additional configuration to telescope to change theme, layout, etc.
 | 
			
		||||
| 
						 | 
				
			
			@ -376,6 +416,15 @@ require('lazy').setup({
 | 
			
		|||
 | 
			
		||||
  { -- LSP Configuration & Plugins
 | 
			
		||||
    'neovim/nvim-lspconfig',
 | 
			
		||||
    --Configure dartlsp
 | 
			
		||||
    -- local lspconfig = require 'lspconfig'
 | 
			
		||||
    -- lspconfig.dartls.setup {
 | 
			
		||||
    --   cmd = { 'dart', '/home/rapzy/Downloads/Flutter/flutter/bin/cache/dart-sdk/bin/snapshots/analysis_server.dart.snapshot ', '--lsp' },
 | 
			
		||||
    --   capabilities = require('cmp_nvim_lsp').default_capabilities(vim.lsp.protocol.make_client_capabilities()),
 | 
			
		||||
    -- }
 | 
			
		||||
    -- lspconfig.dartls.setup {
 | 
			
		||||
    --   cmd = { '/path/to/dart', 'language-server', '--protocol=lsp' },
 | 
			
		||||
    -- }
 | 
			
		||||
    dependencies = {
 | 
			
		||||
      -- Automatically install LSPs and related tools to stdpath for neovim
 | 
			
		||||
      'williamboman/mason.nvim',
 | 
			
		||||
| 
						 | 
				
			
			@ -393,6 +442,11 @@ require('lazy').setup({
 | 
			
		|||
      } },
 | 
			
		||||
    },
 | 
			
		||||
    config = function()
 | 
			
		||||
      local lspconfig = require 'lspconfig'
 | 
			
		||||
 | 
			
		||||
      lspconfig.dartls.setup {
 | 
			
		||||
        cmd = { 'dart', 'language-server', '--protocol=lsp' },
 | 
			
		||||
      }
 | 
			
		||||
      -- Brief Aside: **What is LSP?**
 | 
			
		||||
      --
 | 
			
		||||
      -- LSP is an acronym you've probably heard, but might not understand what it is.
 | 
			
		||||
| 
						 | 
				
			
			@ -569,6 +623,11 @@ require('lazy').setup({
 | 
			
		|||
      local ensure_installed = vim.tbl_keys(servers or {})
 | 
			
		||||
      vim.list_extend(ensure_installed, {
 | 
			
		||||
        'stylua', -- Used to format lua code
 | 
			
		||||
        'black',
 | 
			
		||||
        'debugpy',
 | 
			
		||||
        'mypy',
 | 
			
		||||
        'ruff',
 | 
			
		||||
        'pyright',
 | 
			
		||||
      })
 | 
			
		||||
      require('mason-tool-installer').setup { ensure_installed = ensure_installed }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -589,6 +648,7 @@ require('lazy').setup({
 | 
			
		|||
 | 
			
		||||
  { -- Autoformat
 | 
			
		||||
    'stevearc/conform.nvim',
 | 
			
		||||
 | 
			
		||||
    opts = {
 | 
			
		||||
      notify_on_error = false,
 | 
			
		||||
      format_on_save = {
 | 
			
		||||
| 
						 | 
				
			
			@ -597,12 +657,17 @@ require('lazy').setup({
 | 
			
		|||
      },
 | 
			
		||||
      formatters_by_ft = {
 | 
			
		||||
        lua = { 'stylua' },
 | 
			
		||||
        -- Conform can also run multiple formatters sequentially
 | 
			
		||||
        python = { 'isort', 'black' },
 | 
			
		||||
        --
 | 
			
		||||
        -- You can use a sub-list to tell conform to run *until* a formatter
 | 
			
		||||
        -- is found.
 | 
			
		||||
        -- Conform will run multiple formatters sequentially
 | 
			
		||||
        -- go = { 'goimports', 'gofmt' },
 | 
			
		||||
        python = function(bufnr)
 | 
			
		||||
          if require('conform').get_formatter_info('ruff_format', bufnr).available then
 | 
			
		||||
            return { 'ruff_format' }
 | 
			
		||||
          else
 | 
			
		||||
            return { 'isort', 'black' }
 | 
			
		||||
          end
 | 
			
		||||
        end,
 | 
			
		||||
        javascript = { { 'prettierd', 'prettier' } },
 | 
			
		||||
        javascriptreact = { { 'prettierd', 'prettier' } },
 | 
			
		||||
        ['*'] = { 'trim_whitespace' },
 | 
			
		||||
      },
 | 
			
		||||
    },
 | 
			
		||||
| 
						 | 
				
			
			@ -699,12 +764,19 @@ require('lazy').setup({
 | 
			
		|||
          { name = 'path' },
 | 
			
		||||
        },
 | 
			
		||||
      }
 | 
			
		||||
      cmp.setup.filetype({ 'sql' }, {
 | 
			
		||||
        sources = {
 | 
			
		||||
          { name = 'vim-dadbod-completion' },
 | 
			
		||||
          { name = 'buffer' },
 | 
			
		||||
        },
 | 
			
		||||
      })
 | 
			
		||||
    end,
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  {
 | 
			
		||||
    'rose-pine/neovim',
 | 
			
		||||
    name = 'rose-pine',
 | 
			
		||||
    priority = 1000,
 | 
			
		||||
    config = function()
 | 
			
		||||
      require('rose-pine').setup {
 | 
			
		||||
        disable_background = true,
 | 
			
		||||
| 
						 | 
				
			
			@ -715,15 +787,83 @@ require('lazy').setup({
 | 
			
		|||
      }
 | 
			
		||||
    end,
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    'catppuccin/nvim',
 | 
			
		||||
    name = 'catppuccin',
 | 
			
		||||
    priority = 1000,
 | 
			
		||||
    config = function()
 | 
			
		||||
      require('catppuccin').setup {
 | 
			
		||||
        flavour = 'auto', -- latte, frappe, macchiato, mocha
 | 
			
		||||
        background = { -- :h background
 | 
			
		||||
          light = 'latte',
 | 
			
		||||
          dark = 'mocha',
 | 
			
		||||
        },
 | 
			
		||||
        transparent_background = true, -- disables setting the background color.
 | 
			
		||||
        show_end_of_buffer = false, -- shows the '~' characters after the end of buffers
 | 
			
		||||
        term_colors = false, -- sets terminal colors (e.g. `g:terminal_color_0`)
 | 
			
		||||
        dim_inactive = {
 | 
			
		||||
          enabled = false, -- dims the background color of inactive window
 | 
			
		||||
          shade = 'dark',
 | 
			
		||||
          percentage = 0.15, -- percentage of the shade to apply to the inactive window
 | 
			
		||||
        },
 | 
			
		||||
        no_italic = true, -- Force no italic
 | 
			
		||||
        no_bold = false, -- Force no bold
 | 
			
		||||
        no_underline = false, -- Force no underline
 | 
			
		||||
        --[[ styles = { -- Handles the styles of general hi groups (see `:h highlight-args`):
 | 
			
		||||
          -- comments = { 'italic' }, -- Change the style of comments
 | 
			
		||||
          -- conditionals = { 'italic' },
 | 
			
		||||
          loops = {},
 | 
			
		||||
          functions = {},
 | 
			
		||||
          keywords = {},
 | 
			
		||||
          strings = {},
 | 
			
		||||
          variables = {},
 | 
			
		||||
          numbers = {},
 | 
			
		||||
          booleans = {},
 | 
			
		||||
          properties = {},
 | 
			
		||||
          types = {},
 | 
			
		||||
          operators = {},
 | 
			
		||||
          -- miscs = {}, -- Uncomment to turn off hard-coded styles
 | 
			
		||||
        }, ]]
 | 
			
		||||
        color_overrides = {},
 | 
			
		||||
        custom_highlights = {},
 | 
			
		||||
        default_integrations = true,
 | 
			
		||||
        integrations = {
 | 
			
		||||
          cmp = true,
 | 
			
		||||
          gitsigns = true,
 | 
			
		||||
          nvimtree = true,
 | 
			
		||||
          treesitter = true,
 | 
			
		||||
          notify = false,
 | 
			
		||||
          mini = {
 | 
			
		||||
            enabled = true,
 | 
			
		||||
            indentscope_color = '',
 | 
			
		||||
          },
 | 
			
		||||
          -- For more plugins integrations please scroll down (https://github.com/catppuccin/nvim#integrations)
 | 
			
		||||
        },
 | 
			
		||||
      }
 | 
			
		||||
      vim.cmd.colorscheme 'catppuccin'
 | 
			
		||||
      vim.o.background = 'dark'
 | 
			
		||||
 | 
			
		||||
      vim.api.nvim_set_hl(0, 'TelescopeNormal', { bg = 'none' }) --Background (inside telescope)
 | 
			
		||||
      vim.api.nvim_set_hl(0, 'TelescopeBorder', { bg = 'none' }) --Weird Borderline
 | 
			
		||||
      vim.api.nvim_set_hl(0, 'NormalNC', { bg = 'none' }) --Background (outside telescope)
 | 
			
		||||
      vim.api.nvim_set_hl(0, 'WinSeparator', { fg = '#ffffff' }) --window separator
 | 
			
		||||
      vim.api.nvim_set_hl(0, 'NotificationInfo', { bg = 'none' }) --window separator
 | 
			
		||||
      vim.api.nvim_set_hl(0, 'NotificationWarning', { bg = 'none' }) --window separator
 | 
			
		||||
      vim.api.nvim_set_hl(0, 'NotificationError', { bg = 'none' }) --window separator
 | 
			
		||||
      -- vim.api.nvim_set_hl(0, 'Normalfloat', { bg = 'none' })
 | 
			
		||||
 | 
			
		||||
      -- You can configure highlights by doing something like
 | 
			
		||||
      vim.cmd.hi 'Comment gui=none'
 | 
			
		||||
    end,
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    'folke/tokyonight.nvim',
 | 
			
		||||
    priority = 1000, -- make sure to load this before all the other start plugins
 | 
			
		||||
    init = function()
 | 
			
		||||
      -- vim.cmd.colorscheme 'rose-pine'
 | 
			
		||||
 | 
			
		||||
      -- You can configure highlights by doing something like
 | 
			
		||||
      vim.cmd.hi 'Comment gui=none'
 | 
			
		||||
      require('tokyonight').setup {
 | 
			
		||||
        transparent = false,
 | 
			
		||||
        terminal_colors = true,
 | 
			
		||||
      }
 | 
			
		||||
    end,
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -753,7 +893,7 @@ require('lazy').setup({
 | 
			
		|||
      --  and try some other statusline plugin
 | 
			
		||||
      local statusline = require 'mini.statusline'
 | 
			
		||||
      -- set use_icons to true if you have a Nerd Font
 | 
			
		||||
      statusline.setup { use_icons = vim.g.have_nerd_font }
 | 
			
		||||
      statusline.setup { use_icons = true, set_vim_settings = false }
 | 
			
		||||
 | 
			
		||||
      -- You can configure sections in the statusline by overriding their
 | 
			
		||||
      -- default behavior. For example, here we set the section for
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,12 +0,0 @@
 | 
			
		|||
return {
 | 
			
		||||
  'nvim-neo-tree/neo-tree.nvim',
 | 
			
		||||
  version = '*',
 | 
			
		||||
  dependencies = {
 | 
			
		||||
    'nvim-lua/plenary.nvim',
 | 
			
		||||
    'nvim-tree/nvim-web-devicons', -- not strictly required, but recommended
 | 
			
		||||
    'MunifTanjim/nui.nvim',
 | 
			
		||||
  },
 | 
			
		||||
  config = function()
 | 
			
		||||
    require('neo-tree').setup {}
 | 
			
		||||
  end,
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
		Reference in New Issue