mirror of
https://github.com/iofq/nvim.nix.git
synced 2026-01-23 08:55:16 -06:00
add copilot, snacks
This commit is contained in:
parent
0f709befab
commit
d88c03f005
11 changed files with 325 additions and 450 deletions
156
flake.lock
generated
156
flake.lock
generated
|
|
@ -1,47 +1,5 @@
|
||||||
{
|
{
|
||||||
"nodes": {
|
"nodes": {
|
||||||
"blink": {
|
|
||||||
"inputs": {
|
|
||||||
"fenix": "fenix",
|
|
||||||
"flake-parts": "flake-parts",
|
|
||||||
"nixpkgs": "nixpkgs"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1738451960,
|
|
||||||
"narHash": "sha256-6NgB253rpCaNlNabbZRYIC/x1ZOlm41ZMvQOSNhgef8=",
|
|
||||||
"owner": "Saghen",
|
|
||||||
"repo": "blink.cmp",
|
|
||||||
"rev": "cc34be8ff1145264811e59b017f59676ad81000e",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "Saghen",
|
|
||||||
"repo": "blink.cmp",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"fenix": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"blink",
|
|
||||||
"nixpkgs"
|
|
||||||
],
|
|
||||||
"rust-analyzer-src": "rust-analyzer-src"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1734676450,
|
|
||||||
"narHash": "sha256-iwcxhTVe4h5TqW0HsNiOQP27eMBmbBshF+q2UjEy5aU=",
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "fenix",
|
|
||||||
"rev": "46e19fa0eb3260b2c3ee5b2cf89e73343c1296ab",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "fenix",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"flake-compat": {
|
"flake-compat": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
|
|
@ -62,24 +20,6 @@
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs-lib": "nixpkgs-lib"
|
"nixpkgs-lib": "nixpkgs-lib"
|
||||||
},
|
},
|
||||||
"locked": {
|
|
||||||
"lastModified": 1733312601,
|
|
||||||
"narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=",
|
|
||||||
"owner": "hercules-ci",
|
|
||||||
"repo": "flake-parts",
|
|
||||||
"rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "hercules-ci",
|
|
||||||
"repo": "flake-parts",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"flake-parts_2": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs-lib": "nixpkgs-lib_2"
|
|
||||||
},
|
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1717285511,
|
"lastModified": 1717285511,
|
||||||
"narHash": "sha256-iKzJcpdXih14qYVcZ9QC9XuZYnPc6T8YImb6dX166kw=",
|
"narHash": "sha256-iKzJcpdXih14qYVcZ9QC9XuZYnPc6T8YImb6dX166kw=",
|
||||||
|
|
@ -114,7 +54,7 @@
|
||||||
},
|
},
|
||||||
"gen-luarc": {
|
"gen-luarc": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-parts": "flake-parts_2",
|
"flake-parts": "flake-parts",
|
||||||
"git-hooks": "git-hooks",
|
"git-hooks": "git-hooks",
|
||||||
"luvit-meta": "luvit-meta",
|
"luvit-meta": "luvit-meta",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
|
|
@ -199,33 +139,21 @@
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1736166416,
|
"lastModified": 1738410390,
|
||||||
"narHash": "sha256-U47xeACNBpkSO6IcCm0XvahsVXpJXzjPIQG7TZlOToU=",
|
"narHash": "sha256-xvTo0Aw0+veek7hvEVLzErmJyQkEcRk6PSR4zsRQFEc=",
|
||||||
"owner": "nixos",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "b30f97d8c32d804d2d832ee837d0f1ca0695faa5",
|
"rev": "3a228057f5b619feb3186e986dbe76278d707b6e",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nixos",
|
"owner": "NixOS",
|
||||||
"ref": "nixpkgs-unstable",
|
"ref": "nixos-unstable",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs-lib": {
|
"nixpkgs-lib": {
|
||||||
"locked": {
|
|
||||||
"lastModified": 1733096140,
|
|
||||||
"narHash": "sha256-1qRH7uAUsyQI7R1Uwl4T+XvdNv778H0Nb5njNrqvylY=",
|
|
||||||
"type": "tarball",
|
|
||||||
"url": "https://github.com/NixOS/nixpkgs/archive/5487e69da40cbd611ab2cadee0b4637225f7cfae.tar.gz"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"type": "tarball",
|
|
||||||
"url": "https://github.com/NixOS/nixpkgs/archive/5487e69da40cbd611ab2cadee0b4637225f7cfae.tar.gz"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs-lib_2": {
|
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1717284937,
|
"lastModified": 1717284937,
|
||||||
"narHash": "sha256-lIbdfCsf8LMFloheeE6N31+BMIeixqyQWbSr2vk79EQ=",
|
"narHash": "sha256-lIbdfCsf8LMFloheeE6N31+BMIeixqyQWbSr2vk79EQ=",
|
||||||
|
|
@ -237,6 +165,22 @@
|
||||||
"url": "https://github.com/NixOS/nixpkgs/archive/eb9ceca17df2ea50a250b6b27f7bf6ab0186f198.tar.gz"
|
"url": "https://github.com/NixOS/nixpkgs/archive/eb9ceca17df2ea50a250b6b27f7bf6ab0186f198.tar.gz"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nixpkgs-master": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1738490265,
|
||||||
|
"narHash": "sha256-lYo2OmtQ8Mz8BpmUQT93P8guOLnfGEwXbY55Eb55Thg=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "7e26be4395f18f0aaaab3d704a55791f19764edd",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "master",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nixpkgs-stable": {
|
"nixpkgs-stable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1720386169,
|
"lastModified": 1720386169,
|
||||||
|
|
@ -253,46 +197,12 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1738410390,
|
|
||||||
"narHash": "sha256-xvTo0Aw0+veek7hvEVLzErmJyQkEcRk6PSR4zsRQFEc=",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "3a228057f5b619feb3186e986dbe76278d707b6e",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NixOS",
|
|
||||||
"ref": "nixos-unstable",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"blink": "blink",
|
|
||||||
"flake-utils": "flake-utils",
|
"flake-utils": "flake-utils",
|
||||||
"gen-luarc": "gen-luarc",
|
"gen-luarc": "gen-luarc",
|
||||||
"nixpkgs": "nixpkgs_2",
|
"nixpkgs": "nixpkgs",
|
||||||
"workspace-diagnostics-nvim": "workspace-diagnostics-nvim"
|
"nixpkgs-master": "nixpkgs-master"
|
||||||
}
|
|
||||||
},
|
|
||||||
"rust-analyzer-src": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1734622712,
|
|
||||||
"narHash": "sha256-2Oc2LbFypF1EG3zTVIVcuT5XFJ7R3oAwu2tS8B0qQ0I=",
|
|
||||||
"owner": "rust-lang",
|
|
||||||
"repo": "rust-analyzer",
|
|
||||||
"rev": "fe027d79d22f2a7645da4143f5cc0f5f56239b97",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "rust-lang",
|
|
||||||
"ref": "nightly",
|
|
||||||
"repo": "rust-analyzer",
|
|
||||||
"type": "github"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"systems": {
|
"systems": {
|
||||||
|
|
@ -309,22 +219,6 @@
|
||||||
"repo": "default",
|
"repo": "default",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
|
||||||
"workspace-diagnostics-nvim": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1723294887,
|
|
||||||
"narHash": "sha256-lBj4KUPmmhtpffYky/HpaTwY++d/Q9socp/Ys+4VeX0=",
|
|
||||||
"owner": "artemave",
|
|
||||||
"repo": "workspace-diagnostics.nvim",
|
|
||||||
"rev": "573ff93c47898967efdfbc6587a1a39e3c2d365e",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "artemave",
|
|
||||||
"repo": "workspace-diagnostics.nvim",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"root": "root",
|
"root": "root",
|
||||||
|
|
|
||||||
|
|
@ -3,15 +3,12 @@
|
||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||||
|
nixpkgs-master.url = "github:NixOS/nixpkgs/master";
|
||||||
flake-utils.url = "github:numtide/flake-utils";
|
flake-utils.url = "github:numtide/flake-utils";
|
||||||
gen-luarc = {
|
gen-luarc = {
|
||||||
url = "github:mrcjkb/nix-gen-luarc-json";
|
url = "github:mrcjkb/nix-gen-luarc-json";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
workspace-diagnostics-nvim = {
|
|
||||||
url = "github:artemave/workspace-diagnostics.nvim";
|
|
||||||
flake = false;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = inputs @ {
|
outputs = inputs @ {
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,7 @@ with lib;
|
||||||
extraPython3Packages ? p: [], # Additional python 3 packages
|
extraPython3Packages ? p: [], # Additional python 3 packages
|
||||||
withPython3 ? false, # Build Neovim with Python 3 support?
|
withPython3 ? false, # Build Neovim with Python 3 support?
|
||||||
withRuby ? false, # Build Neovim with Ruby support?
|
withRuby ? false, # Build Neovim with Ruby support?
|
||||||
withNodeJs ? false, # Build Neovim with NodeJS support?
|
withNodeJs ? true, # Build Neovim with NodeJS support?
|
||||||
withSqlite ? true, # Add sqlite? This is a dependency for some plugins
|
withSqlite ? true, # Add sqlite? This is a dependency for some plugins
|
||||||
# You probably don't want to create vi or vim aliases
|
# You probably don't want to create vi or vim aliases
|
||||||
# if the appName is something different than "nvim"
|
# if the appName is something different than "nvim"
|
||||||
|
|
|
||||||
|
|
@ -10,32 +10,28 @@ with final.pkgs.lib; let
|
||||||
inherit pname src;
|
inherit pname src;
|
||||||
version = src.lastModifiedDate;
|
version = src.lastModifiedDate;
|
||||||
};
|
};
|
||||||
workspace-diagnostics-nvim = mkNvimPlugin inputs.workspace-diagnostics-nvim "workspace-diagnostics.nvim";
|
|
||||||
|
|
||||||
mkNeovim = pkgs.callPackage ./mkNeovim.nix { inherit pkgs-wrapNeovim; };
|
mkNeovim = pkgs.callPackage ./mkNeovim.nix { inherit pkgs-wrapNeovim; };
|
||||||
|
|
||||||
all-plugins = with pkgs.vimPlugins; [
|
all-plugins = with pkgs.vimPlugins; [
|
||||||
aerial-nvim
|
aerial-nvim
|
||||||
cmp-buffer
|
avante-nvim
|
||||||
cmp-cmdline
|
inputs.nixpkgs-master.legacyPackages.${pkgs.system}.vimPlugins.blink-cmp
|
||||||
cmp-nvim-lsp
|
blink-cmp-copilot
|
||||||
cmp-path
|
blink-compat
|
||||||
cmp-treesitter
|
blink-ripgrep-nvim
|
||||||
cmp_luasnip
|
copilot-lua
|
||||||
diffview-nvim
|
diffview-nvim
|
||||||
eyeliner-nvim
|
eyeliner-nvim
|
||||||
friendly-snippets
|
friendly-snippets
|
||||||
gitsigns-nvim
|
gitsigns-nvim
|
||||||
lazy-nvim
|
lazy-nvim
|
||||||
luasnip
|
luasnip
|
||||||
markview-nvim
|
|
||||||
mini-nvim
|
mini-nvim
|
||||||
neogen
|
neogen
|
||||||
neogit
|
neogit
|
||||||
none-ls-nvim
|
none-ls-nvim
|
||||||
nightfox-nvim
|
nightfox-nvim
|
||||||
nvim-autopairs
|
nvim-autopairs
|
||||||
nvim-cmp
|
|
||||||
nvim-dap
|
nvim-dap
|
||||||
nvim-dap-go
|
nvim-dap-go
|
||||||
nvim-dap-ui
|
nvim-dap-ui
|
||||||
|
|
@ -43,41 +39,13 @@ with final.pkgs.lib; let
|
||||||
nvim-nio
|
nvim-nio
|
||||||
nvim-treesitter-context
|
nvim-treesitter-context
|
||||||
nvim-treesitter-textobjects
|
nvim-treesitter-textobjects
|
||||||
(nvim-treesitter.withPlugins(p: with p; [
|
nvim-treesitter.withAllGrammars
|
||||||
tree-sitter-bash
|
render-markdown-nvim
|
||||||
tree-sitter-c
|
|
||||||
tree-sitter-comment
|
|
||||||
tree-sitter-css
|
|
||||||
tree-sitter-dockerfile
|
|
||||||
tree-sitter-embedded-template
|
|
||||||
tree-sitter-go
|
|
||||||
tree-sitter-gomod
|
|
||||||
tree-sitter-hcl
|
|
||||||
tree-sitter-html
|
|
||||||
tree-sitter-javascript
|
|
||||||
tree-sitter-json
|
|
||||||
tree-sitter-lua
|
|
||||||
tree-sitter-make
|
|
||||||
tree-sitter-markdown
|
|
||||||
tree-sitter-markdown-inline
|
|
||||||
tree-sitter-nix
|
|
||||||
tree-sitter-php
|
|
||||||
tree-sitter-python
|
|
||||||
tree-sitter-regex
|
|
||||||
tree-sitter-ruby
|
|
||||||
tree-sitter-sql
|
|
||||||
tree-sitter-toml
|
|
||||||
tree-sitter-typescript
|
|
||||||
tree-sitter-yaml
|
|
||||||
]))
|
|
||||||
scope-nvim
|
scope-nvim
|
||||||
telescope-fzf-native-nvim
|
snacks-nvim
|
||||||
telescope-nvim
|
|
||||||
toggleterm-nvim
|
|
||||||
trouble-nvim
|
trouble-nvim
|
||||||
undotree
|
undotree
|
||||||
yanky-nvim
|
yanky-nvim
|
||||||
workspace-diagnostics-nvim
|
|
||||||
];
|
];
|
||||||
|
|
||||||
basePackages = with pkgs; [
|
basePackages = with pkgs; [
|
||||||
|
|
@ -93,8 +61,9 @@ with final.pkgs.lib; let
|
||||||
gopls
|
gopls
|
||||||
lua-language-server
|
lua-language-server
|
||||||
nil
|
nil
|
||||||
python312Packages.jedi-language-server
|
|
||||||
phpactor
|
phpactor
|
||||||
|
python312Packages.jedi-language-server
|
||||||
|
ruby-lsp
|
||||||
|
|
||||||
# debuggers
|
# debuggers
|
||||||
delve
|
delve
|
||||||
|
|
|
||||||
75
nvim/lua/plugins/ai.lua
Normal file
75
nvim/lua/plugins/ai.lua
Normal file
|
|
@ -0,0 +1,75 @@
|
||||||
|
return {
|
||||||
|
{
|
||||||
|
"zbirenbaum/copilot.lua",
|
||||||
|
cmd = "Copilot",
|
||||||
|
event = "InsertEnter",
|
||||||
|
opts = {
|
||||||
|
panel = { enabled = false },
|
||||||
|
suggestion = {
|
||||||
|
enabled = true,
|
||||||
|
keymap = {
|
||||||
|
accept = "<M-]>",
|
||||||
|
next = "<M-[>",
|
||||||
|
dismiss = "<C-]>",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
completion = {
|
||||||
|
documentation = {
|
||||||
|
auto_show = true,
|
||||||
|
},
|
||||||
|
list = {
|
||||||
|
selection = {
|
||||||
|
preselect = false,
|
||||||
|
auto_insert = true,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
accept = {
|
||||||
|
auto_brackets = {
|
||||||
|
enabled = true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
filetypes = {
|
||||||
|
go = true,
|
||||||
|
lua = true,
|
||||||
|
php = true,
|
||||||
|
python = true,
|
||||||
|
ruby = true,
|
||||||
|
sh = true,
|
||||||
|
puppet = true,
|
||||||
|
yaml = true,
|
||||||
|
markdown = true,
|
||||||
|
["."] = false,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"yetone/avante.nvim",
|
||||||
|
event = "VeryLazy",
|
||||||
|
lazy = false,
|
||||||
|
dependencies = {
|
||||||
|
"stevearc/dressing.nvim",
|
||||||
|
"nvim-lua/plenary.nvim",
|
||||||
|
"MunifTanjim/nui.nvim",
|
||||||
|
"folke/snacks.nvim",
|
||||||
|
"zbirenbaum/copilot.lua",
|
||||||
|
{
|
||||||
|
'MeanderingProgrammer/render-markdown.nvim',
|
||||||
|
opts = {
|
||||||
|
file_types = { "markdown", "Avante" },
|
||||||
|
},
|
||||||
|
ft = { "markdown", "Avante" },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
opts = {
|
||||||
|
provider = "copilot",
|
||||||
|
auto_suggestions_provider = "copilot",
|
||||||
|
behavior = {
|
||||||
|
auto_suggestions = false, -- TODO
|
||||||
|
},
|
||||||
|
file_selector = {
|
||||||
|
provider = "native", -- TODO snacks once it's ready
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,60 +1,105 @@
|
||||||
return {
|
return {
|
||||||
{
|
{
|
||||||
'hrsh7th/nvim-cmp',
|
'saghen/blink.cmp',
|
||||||
event = 'VeryLazy',
|
|
||||||
dependencies = {
|
dependencies = {
|
||||||
'hrsh7th/cmp-buffer',
|
"yetone/avante.nvim",
|
||||||
'hrsh7th/cmp-cmdline',
|
'saghen/blink.compat',
|
||||||
'hrsh7th/cmp-path',
|
'rafamadriz/friendly-snippets',
|
||||||
'hrsh7th/cmp-nvim-lsp',
|
'giuxtaposition/blink-cmp-copilot',
|
||||||
'ray-x/cmp-treesitter',
|
'mikavilpas/blink-ripgrep.nvim'
|
||||||
'L3MON4D3/luasnip',
|
|
||||||
'saadparwaiz1/cmp_luasnip',
|
|
||||||
},
|
},
|
||||||
config = function()
|
config = function(_, opts)
|
||||||
local cmp = require('cmp')
|
require('blink.cmp').setup(opts)
|
||||||
cmp.setup {
|
vim.api.nvim_create_autocmd('User', {
|
||||||
snippet = {
|
pattern = 'BlinkCmpMenuOpen',
|
||||||
expand = function(args)
|
callback = function()
|
||||||
require('luasnip').lsp_expand(args.body)
|
require("copilot.suggestion").dismiss()
|
||||||
end,
|
vim.b.copilot_suggestion_hidden = true
|
||||||
},
|
end,
|
||||||
mapping = cmp.mapping.preset.insert {
|
|
||||||
['<C-u>'] = cmp.mapping.scroll_docs(-4),
|
|
||||||
['<C-d>'] = cmp.mapping.scroll_docs(4),
|
|
||||||
['<C-n>'] = cmp.mapping.select_next_item { behavior = cmp.SelectBehavior.Insert },
|
|
||||||
['<C-p>'] = cmp.mapping.select_prev_item { behavior = cmp.SelectBehavior.Insert },
|
|
||||||
['<C-Space>'] = cmp.mapping.confirm {
|
|
||||||
select = true,
|
|
||||||
behavior = cmp.SelectBehavior.Insert
|
|
||||||
},
|
|
||||||
},
|
|
||||||
sources = cmp.config.sources({
|
|
||||||
{ name = 'nvim_lsp', keyword_length = 1 },
|
|
||||||
{ name = 'luasnip' },
|
|
||||||
{ name = 'buffer' },
|
|
||||||
{ name = 'path' },
|
|
||||||
{ name = 'treesitter', keyword_length = 3 },
|
|
||||||
}),
|
|
||||||
}
|
|
||||||
|
|
||||||
cmp.setup.cmdline({ '/', '?' }, {
|
|
||||||
mapping = cmp.mapping.preset.cmdline(),
|
|
||||||
sources = {
|
|
||||||
{ name = 'buffer' },
|
|
||||||
},
|
|
||||||
})
|
})
|
||||||
|
|
||||||
cmp.setup.cmdline(':', {
|
vim.api.nvim_create_autocmd('User', {
|
||||||
mapping = cmp.mapping.preset.cmdline(),
|
pattern = 'BlinkCmpMenuClose',
|
||||||
sources = cmp.config.sources({
|
callback = function()
|
||||||
{ name = 'path' },
|
vim.b.copilot_suggestion_hidden = false
|
||||||
{ name = 'buffer' },
|
end,
|
||||||
{ name = 'cmdline' },
|
|
||||||
}),
|
|
||||||
matching = { disallow_symbol_nonprefix_matching = false },
|
|
||||||
})
|
})
|
||||||
end,
|
end,
|
||||||
|
opts = {
|
||||||
|
sources = {
|
||||||
|
default = {
|
||||||
|
"lsp",
|
||||||
|
"path",
|
||||||
|
"snippets",
|
||||||
|
"buffer",
|
||||||
|
"ripgrep",
|
||||||
|
"avante_commands",
|
||||||
|
"avante_mentions",
|
||||||
|
"avante_files"
|
||||||
|
},
|
||||||
|
providers = {
|
||||||
|
ripgrep = {
|
||||||
|
module = "blink-ripgrep",
|
||||||
|
name = "rg",
|
||||||
|
score_offset = -10,
|
||||||
|
},
|
||||||
|
avante_commands = {
|
||||||
|
name = "avante_commands",
|
||||||
|
module = "blink.compat.source",
|
||||||
|
score_offset = 90,
|
||||||
|
opts = {},
|
||||||
|
},
|
||||||
|
avante_files = {
|
||||||
|
name = "avante_files",
|
||||||
|
module = "blink.compat.source",
|
||||||
|
score_offset = 100,
|
||||||
|
opts = {},
|
||||||
|
},
|
||||||
|
avante_mentions = {
|
||||||
|
name = "avante_mentions",
|
||||||
|
module = "blink.compat.source",
|
||||||
|
score_offset = 1000,
|
||||||
|
opts = {},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
keymap = {
|
||||||
|
["<C-space>"] = { "show", "select_and_accept" }
|
||||||
|
},
|
||||||
|
completion = {
|
||||||
|
documentation = {
|
||||||
|
auto_show = true,
|
||||||
|
auto_show_delay_ms = 100
|
||||||
|
},
|
||||||
|
list = {
|
||||||
|
selection = {
|
||||||
|
preselect = false,
|
||||||
|
auto_insert = true,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
accept = {
|
||||||
|
auto_brackets = {
|
||||||
|
enabled = true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
menu = {
|
||||||
|
draw = {
|
||||||
|
treesitter = { "lsp" },
|
||||||
|
columns = {
|
||||||
|
{ "label", "label_description", gap = 1 },
|
||||||
|
{ "source_name", "kind", gap = 1 }
|
||||||
|
},
|
||||||
|
}
|
||||||
|
},
|
||||||
|
trigger = {
|
||||||
|
show_on_keyword = false,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
appearance = {
|
||||||
|
use_nvim_cmp_as_default = true,
|
||||||
|
},
|
||||||
|
signature = { enabled = true }
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'L3MON4D3/luasnip',
|
'L3MON4D3/luasnip',
|
||||||
|
|
|
||||||
|
|
@ -2,45 +2,27 @@ return {
|
||||||
{
|
{
|
||||||
'folke/trouble.nvim',
|
'folke/trouble.nvim',
|
||||||
event = 'VeryLazy',
|
event = 'VeryLazy',
|
||||||
dependencies = {
|
config = true,
|
||||||
'artemave/workspace-diagnostics.nvim',
|
keys = {
|
||||||
},
|
{
|
||||||
config = function()
|
|
||||||
require('trouble').setup()
|
|
||||||
vim.keymap.set(
|
|
||||||
'n',
|
|
||||||
'<leader>de',
|
'<leader>de',
|
||||||
'<cmd>Trouble diagnostics toggle focus=true<CR>',
|
'<cmd>Trouble diagnostics toggle focus=true<CR>',
|
||||||
{ noremap = true, desc = 'Trouble diagnostics' }
|
{ noremap = true, desc = 'Trouble diagnostics' }
|
||||||
)
|
}
|
||||||
vim.keymap.set(
|
}
|
||||||
'n',
|
|
||||||
'<leader>dE',
|
|
||||||
'<cmd>Trouble diagnostics toggle focus=true filter.buf=0<CR>',
|
|
||||||
{ noremap = true, desc = 'Trouble diagnostics (currrent buffer)' }
|
|
||||||
)
|
|
||||||
vim.keymap.set('n', '<leader>dw', function()
|
|
||||||
for _, client in ipairs(vim.lsp.get_clients { bufnr = 0 }) do
|
|
||||||
require('workspace-diagnostics').populate_workspace_diagnostics(client, 0)
|
|
||||||
end
|
|
||||||
end, { noremap = true, desc = 'Populate Trouble workspace diagnostics' })
|
|
||||||
end,
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'neovim/nvim-lspconfig',
|
'neovim/nvim-lspconfig',
|
||||||
event = 'VeryLazy',
|
event = 'VeryLazy',
|
||||||
dependencies = {
|
dependencies = {
|
||||||
'hrsh7th/cmp-nvim-lsp',
|
'folke/snacks.nvim',
|
||||||
'artemave/workspace-diagnostics.nvim',
|
'saghen/blink.cmp',
|
||||||
},
|
},
|
||||||
config = function()
|
config = function()
|
||||||
local lspconfig = require('lspconfig')
|
local lspconfig = require('lspconfig')
|
||||||
lspconfig.util.default_config.capabilities = vim.tbl_deep_extend(
|
local capabilities = require("blink.cmp").get_lsp_capabilities()
|
||||||
'force',
|
|
||||||
lspconfig.util.default_config.capabilities,
|
|
||||||
require('cmp_nvim_lsp').default_capabilities()
|
|
||||||
)
|
|
||||||
lspconfig.gopls.setup {
|
lspconfig.gopls.setup {
|
||||||
|
capabilities = capabilities,
|
||||||
settings = {
|
settings = {
|
||||||
gopls = {
|
gopls = {
|
||||||
gofumpt = true,
|
gofumpt = true,
|
||||||
|
|
@ -66,10 +48,12 @@ return {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
lspconfig.jedi_language_server.setup {}
|
lspconfig.jedi_language_server.setup { capabilities = capabilities }
|
||||||
lspconfig.nil_ls.setup {}
|
lspconfig.nil_ls.setup { capabilities = capabilities }
|
||||||
lspconfig.phpactor.setup {}
|
lspconfig.phpactor.setup { capabilities = capabilities }
|
||||||
|
lspconfig.ruby_ls.setup { capabilities = capabilities }
|
||||||
lspconfig.lua_ls.setup {
|
lspconfig.lua_ls.setup {
|
||||||
|
capabilities = capabilities,
|
||||||
on_init = function(client)
|
on_init = function(client)
|
||||||
local path = client.workspace_folders[1].name
|
local path = client.workspace_folders[1].name
|
||||||
if vim.loop.fs_stat(path .. '/.luarc.json') or vim.loop.fs_stat(path .. '/.luarc.jsonc') then
|
if vim.loop.fs_stat(path .. '/.luarc.json') or vim.loop.fs_stat(path .. '/.luarc.jsonc') then
|
||||||
|
|
@ -120,27 +104,27 @@ return {
|
||||||
vim.keymap.set(
|
vim.keymap.set(
|
||||||
'n',
|
'n',
|
||||||
'<leader>dd',
|
'<leader>dd',
|
||||||
'<cmd>Telescope lsp_definitions<cr>',
|
function() Snacks.picker.diagnostics() end,
|
||||||
|
{ buffer = ev.buf, noremap = true, silent = true, desc = 'LSP diagnostics' }
|
||||||
|
)
|
||||||
|
vim.keymap.set(
|
||||||
|
'n',
|
||||||
|
'<leader>df',
|
||||||
|
function() Snacks.picker.lsp_definitions() end,
|
||||||
{ buffer = ev.buf, noremap = true, silent = true, desc = 'LSP definitions' }
|
{ buffer = ev.buf, noremap = true, silent = true, desc = 'LSP definitions' }
|
||||||
)
|
)
|
||||||
vim.keymap.set(
|
vim.keymap.set(
|
||||||
'n',
|
'n',
|
||||||
'<leader>di',
|
'<leader>di',
|
||||||
'<cmd>Telescope lsp_implementations<cr>',
|
function() Snacks.picker.lsp_implementations() end,
|
||||||
{ buffer = ev.buf, noremap = true, silent = true, desc = 'LSP implementations' }
|
{ buffer = ev.buf, noremap = true, silent = true, desc = 'LSP implementations' }
|
||||||
)
|
)
|
||||||
vim.keymap.set(
|
vim.keymap.set(
|
||||||
'n',
|
'n',
|
||||||
'<leader>dr',
|
'<leader>dr',
|
||||||
'<cmd>Telescope lsp_references<cr>',
|
function() Snacks.picker.lsp_references() end,
|
||||||
{ buffer = ev.buf, noremap = true, silent = true, desc = 'LSP references' }
|
{ buffer = ev.buf, noremap = true, silent = true, desc = 'LSP references' }
|
||||||
)
|
)
|
||||||
vim.keymap.set(
|
|
||||||
'n',
|
|
||||||
'<leader>ds',
|
|
||||||
'<cmd>Telescope lsp_document_symbols<cr>',
|
|
||||||
{ buffer = ev.buf, noremap = true, silent = true, desc = 'LSP symbols' }
|
|
||||||
)
|
|
||||||
vim.keymap.set(
|
vim.keymap.set(
|
||||||
'n',
|
'n',
|
||||||
'<leader>dl',
|
'<leader>dl',
|
||||||
|
|
@ -168,7 +152,6 @@ return {
|
||||||
})
|
})
|
||||||
vim.lsp.codelens.refresh { bufnr = bufnr }
|
vim.lsp.codelens.refresh { bufnr = bufnr }
|
||||||
end
|
end
|
||||||
require('workspace-diagnostics').populate_workspace_diagnostics(client, bufnr)
|
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
vim.api.nvim_exec_autocmds('FileType', {})
|
vim.api.nvim_exec_autocmds('FileType', {})
|
||||||
|
|
|
||||||
|
|
@ -46,18 +46,11 @@ return {
|
||||||
require('mini.ai').setup()
|
require('mini.ai').setup()
|
||||||
require('mini.align').setup()
|
require('mini.align').setup()
|
||||||
require('mini.bracketed').setup()
|
require('mini.bracketed').setup()
|
||||||
require('mini.comment').setup()
|
|
||||||
require('mini.icons').setup()
|
require('mini.icons').setup()
|
||||||
require('mini.surround').setup()
|
require('mini.surround').setup()
|
||||||
require('mini.jump2d').setup { mappings = { start_jumping = '<leader>S' } }
|
|
||||||
require('mini.splitjoin').setup { detect = { separator = '[,;\n]' }, }
|
require('mini.splitjoin').setup { detect = { separator = '[,;\n]' }, }
|
||||||
require('mini.trailspace').setup()
|
require('mini.trailspace').setup()
|
||||||
vim.api.nvim_create_user_command('Trim', require('mini.trailspace').trim, {})
|
vim.api.nvim_create_user_command('Trim', require('mini.trailspace').trim, {})
|
||||||
local indent = require('mini.indentscope')
|
|
||||||
indent.setup {
|
|
||||||
symbol = '│',
|
|
||||||
draw = { delay = 0 },
|
|
||||||
}
|
|
||||||
|
|
||||||
local miniclue = require('mini.clue')
|
local miniclue = require('mini.clue')
|
||||||
miniclue.setup {
|
miniclue.setup {
|
||||||
|
|
@ -101,14 +94,6 @@ return {
|
||||||
}
|
}
|
||||||
vim.keymap.set('n', '<leader>nm', map.toggle, { noremap = true, desc = 'minimap open' })
|
vim.keymap.set('n', '<leader>nm', map.toggle, { noremap = true, desc = 'minimap open' })
|
||||||
|
|
||||||
require('mini.notify').setup {
|
|
||||||
window = {
|
|
||||||
winblend = 0,
|
|
||||||
config = {
|
|
||||||
border = 'double',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
local files = require("mini.files")
|
local files = require("mini.files")
|
||||||
files.setup {
|
files.setup {
|
||||||
mappings = {
|
mappings = {
|
||||||
|
|
|
||||||
|
|
@ -9,16 +9,6 @@ return {
|
||||||
event = 'VeryLazy',
|
event = 'VeryLazy',
|
||||||
config = true,
|
config = true,
|
||||||
},
|
},
|
||||||
{
|
|
||||||
'akinsho/toggleterm.nvim',
|
|
||||||
event = 'VeryLazy',
|
|
||||||
opts = {
|
|
||||||
open_mapping = [[<C-\>]],
|
|
||||||
direction = 'float',
|
|
||||||
close_on_exit = true,
|
|
||||||
autochdir = true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
'jinh0/eyeliner.nvim',
|
'jinh0/eyeliner.nvim',
|
||||||
event = 'VeryLazy',
|
event = 'VeryLazy',
|
||||||
|
|
@ -27,13 +17,6 @@ return {
|
||||||
vim.api.nvim_set_hl(0, 'EyelinerSecondary', { underline = true })
|
vim.api.nvim_set_hl(0, 'EyelinerSecondary', { underline = true })
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
{
|
|
||||||
'OXY2DEV/markview.nvim',
|
|
||||||
event = 'VeryLazy',
|
|
||||||
dependencies = {
|
|
||||||
"nvim-treesitter/nvim-treesitter",
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{ 'tiagovla/scope.nvim', event = 'VeryLazy', config = true },
|
{ 'tiagovla/scope.nvim', event = 'VeryLazy', config = true },
|
||||||
{
|
{
|
||||||
'sindrets/diffview.nvim',
|
'sindrets/diffview.nvim',
|
||||||
|
|
@ -65,16 +48,12 @@ return {
|
||||||
disable_builtin_notifications = true,
|
disable_builtin_notifications = true,
|
||||||
integrations = {
|
integrations = {
|
||||||
diffview = true,
|
diffview = true,
|
||||||
telescope = true,
|
|
||||||
fzf_lua = true,
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
keys = {
|
keys = {
|
||||||
{
|
{
|
||||||
'<leader>ng',
|
'<leader>ng',
|
||||||
function()
|
function() require('neogit').open() end,
|
||||||
require('neogit').open()
|
|
||||||
end,
|
|
||||||
{ noremap = true, silent = true, desc = 'Neogit' },
|
{ noremap = true, silent = true, desc = 'Neogit' },
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
@ -98,17 +77,17 @@ return {
|
||||||
options = {
|
options = {
|
||||||
transparent = true,
|
transparent = true,
|
||||||
terminal_colors = false,
|
terminal_colors = false,
|
||||||
|
modules = {
|
||||||
|
"mini",
|
||||||
|
"treesitter",
|
||||||
|
"neogit",
|
||||||
|
"aerial"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
config = function(_, opts)
|
config = function(_, opts)
|
||||||
require('nightfox').setup(opts)
|
require('nightfox').setup(opts)
|
||||||
vim.cmd('colorscheme terafox')
|
vim.cmd('colorscheme terafox')
|
||||||
vim.api.nvim_set_hl(0, 'MiniNotifyNormal', { bg = 'none' })
|
|
||||||
vim.api.nvim_set_hl(0, 'MiniNotifyTitle', { bg = 'none' })
|
|
||||||
vim.api.nvim_set_hl(0, 'MiniNotifyBorder', { bg = 'none' })
|
|
||||||
vim.api.nvim_set_hl(0, 'MiniMapNormal', { bg = 'none' })
|
|
||||||
vim.api.nvim_set_hl(0, 'MiniClueNormal', { bg = 'none' })
|
|
||||||
vim.api.nvim_set_hl(0, 'MiniTablineFill', { bg = 'none' })
|
|
||||||
vim.api.nvim_set_hl(0, 'StatusLine', { bg = 'none' })
|
vim.api.nvim_set_hl(0, 'StatusLine', { bg = 'none' })
|
||||||
vim.api.nvim_set_hl(0, 'StatusLineNC', { bg = 'none' })
|
vim.api.nvim_set_hl(0, 'StatusLineNC', { bg = 'none' })
|
||||||
vim.api.nvim_set_hl(0, 'GitSignsAdd', { fg = 'green', bold = true })
|
vim.api.nvim_set_hl(0, 'GitSignsAdd', { fg = 'green', bold = true })
|
||||||
|
|
@ -179,4 +158,16 @@ return {
|
||||||
autojump = true,
|
autojump = true,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
'gbprod/yanky.nvim',
|
||||||
|
opts = {
|
||||||
|
ring = {
|
||||||
|
storage = "memory",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
keys = {
|
||||||
|
{ "y", "<Plug>(YankyYank)", mode = { "n", "x" } },
|
||||||
|
{ "<leader>fp", "<cmd>YankyRingHistory<cr>", { mode = { "n", "x" }, noremap = true, silent = true, desc = 'Pick history (yanky.nvim)' } }
|
||||||
|
},
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
|
||||||
76
nvim/lua/plugins/snacks.lua
Normal file
76
nvim/lua/plugins/snacks.lua
Normal file
|
|
@ -0,0 +1,76 @@
|
||||||
|
return {
|
||||||
|
{
|
||||||
|
"folke/snacks.nvim",
|
||||||
|
priority = 1000,
|
||||||
|
lazy = false,
|
||||||
|
opts = {
|
||||||
|
bigfile = { enabled = true },
|
||||||
|
notifier = { enabled = true },
|
||||||
|
scope = { enabled = true },
|
||||||
|
terminal = { enabled = true },
|
||||||
|
indent = { enabled = true },
|
||||||
|
input = { enabled = true },
|
||||||
|
words = { enabled = true },
|
||||||
|
picker = {
|
||||||
|
enabled = true,
|
||||||
|
matcher = { frecency = true },
|
||||||
|
layout = {
|
||||||
|
preset = function()
|
||||||
|
return vim.o.columns >= 120 and "telescope" or "vertical"
|
||||||
|
end
|
||||||
|
},
|
||||||
|
win = {
|
||||||
|
input = {
|
||||||
|
keys = {
|
||||||
|
["wq"] = { "close", mode = "i" },
|
||||||
|
}
|
||||||
|
},
|
||||||
|
list = {
|
||||||
|
keys = {
|
||||||
|
["wq"] = { "close", mode = "i" },
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
config = function(_, opts)
|
||||||
|
require("snacks").setup(opts)
|
||||||
|
vim.api.nvim_set_hl(0, 'SnacksPickerDir', { fg = '#cccccc' })
|
||||||
|
end,
|
||||||
|
keys = {
|
||||||
|
{ '<C-\\>', function() Snacks.terminal.toggle() end, mode = { "n", "t" }, noremap = true, desc = 'terminal open' },
|
||||||
|
{ 'm', function() Snacks.words.jump(1, true) end, noremap = true, desc = 'next reference' },
|
||||||
|
{ 'M', function() Snacks.words.jump(-1, true) end, noremap = true, desc = 'next reference' },
|
||||||
|
{
|
||||||
|
'<leader>ff',
|
||||||
|
function() Snacks.picker.smart() end,
|
||||||
|
{ noremap = true, silent = true, desc = 'Fuzzy find git files' }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'<leader>fa',
|
||||||
|
function() Snacks.picker.grep() end,
|
||||||
|
{ noremap = true, silent = true, desc = 'Fuzzy find grep' }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'<leader>f8',
|
||||||
|
function() Snacks.picker.grep_word() end,
|
||||||
|
{ noremap = true, silent = true, desc = 'Fuzzy find grep word' }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'<leader>f?',
|
||||||
|
function() Snacks.picker.pickers() end,
|
||||||
|
{ noremap = true, silent = true, desc = 'See all pickers' }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'<leader>f.',
|
||||||
|
function() Snacks.picker.resume() end,
|
||||||
|
{ noremap = true, silent = true, desc = 'Fuzzy find resume' }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'<leader><leader>',
|
||||||
|
function() Snacks.picker.buffers() end,
|
||||||
|
{ noremap = true, silent = true, desc = 'Fuzzy find buffers' }
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,140 +0,0 @@
|
||||||
return {
|
|
||||||
{
|
|
||||||
'nvim-telescope/telescope-fzf-native.nvim',
|
|
||||||
event = 'VeryLazy',
|
|
||||||
build = 'make',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
'nvim-telescope/telescope.nvim',
|
|
||||||
event = 'VeryLazy',
|
|
||||||
dependencies = {
|
|
||||||
'nvim-lua/plenary.nvim',
|
|
||||||
'nvim-telescope/telescope-fzf-native.nvim',
|
|
||||||
'nvim-treesitter/nvim-treesitter',
|
|
||||||
'tiagovla/scope.nvim',
|
|
||||||
{
|
|
||||||
'gbprod/yanky.nvim',
|
|
||||||
config = function()
|
|
||||||
local mapping = require("yanky.telescope.mapping")
|
|
||||||
require("yanky").setup({
|
|
||||||
picker = {
|
|
||||||
telescope = {
|
|
||||||
mappings = {
|
|
||||||
default = mapping.set_register(
|
|
||||||
require("yanky.utils").get_default_register()
|
|
||||||
),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
ring = {
|
|
||||||
storage = "memory",
|
|
||||||
},
|
|
||||||
})
|
|
||||||
vim.keymap.set({ "n", "x" }, "y", "<Plug>(YankyYank)")
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
config = function()
|
|
||||||
local telescope = require('telescope')
|
|
||||||
local actions = require('telescope.actions')
|
|
||||||
telescope.setup {
|
|
||||||
defaults = {
|
|
||||||
layout_strategy = 'vertical',
|
|
||||||
layout_config = { width = 0.90 },
|
|
||||||
prompt_title = false,
|
|
||||||
results_title = false,
|
|
||||||
preview_title = false,
|
|
||||||
vimgrep_arguments = {
|
|
||||||
'rg',
|
|
||||||
'-L',
|
|
||||||
'--color=never',
|
|
||||||
'--no-heading',
|
|
||||||
'--hidden',
|
|
||||||
'--with-filename',
|
|
||||||
'--line-number',
|
|
||||||
'--column',
|
|
||||||
'--smart-case',
|
|
||||||
},
|
|
||||||
preview = { treesitter = true },
|
|
||||||
path_display = { 'truncate' },
|
|
||||||
mappings = {
|
|
||||||
i = {
|
|
||||||
['wq'] = actions.close,
|
|
||||||
['<Esc>'] = actions.close,
|
|
||||||
['<C-k>'] = actions.move_selection_previous,
|
|
||||||
['<C-j>'] = actions.move_selection_next,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
telescope.load_extension('fzf')
|
|
||||||
telescope.load_extension('scope')
|
|
||||||
telescope.load_extension('yank_history')
|
|
||||||
|
|
||||||
local b = require('telescope.builtin')
|
|
||||||
-- Fall back to find_files if not in a git repo
|
|
||||||
local project_files = function()
|
|
||||||
local opts = {} -- define here if you want to define something
|
|
||||||
local ok = pcall(b.git_files, opts)
|
|
||||||
if not ok then
|
|
||||||
b.find_files(opts)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
vim.keymap.set(
|
|
||||||
'n',
|
|
||||||
'<leader>ff',
|
|
||||||
project_files,
|
|
||||||
{ noremap = true, silent = true, desc = 'Fuzzy find git files' }
|
|
||||||
)
|
|
||||||
vim.keymap.set(
|
|
||||||
'n',
|
|
||||||
'<leader>fg',
|
|
||||||
b.find_files,
|
|
||||||
{ noremap = true, silent = true, desc = 'Fuzzy find files' }
|
|
||||||
)
|
|
||||||
vim.keymap.set(
|
|
||||||
'n',
|
|
||||||
'<leader>fa',
|
|
||||||
b.live_grep,
|
|
||||||
{ noremap = true, silent = true, desc = 'Fuzzy find grep' }
|
|
||||||
)
|
|
||||||
vim.keymap.set(
|
|
||||||
'n',
|
|
||||||
'<leader>f8',
|
|
||||||
b.grep_string,
|
|
||||||
{ noremap = true, silent = true, desc = 'Fuzzy find grep current word' }
|
|
||||||
)
|
|
||||||
vim.keymap.set(
|
|
||||||
'n',
|
|
||||||
'<leader>f?',
|
|
||||||
b.builtin,
|
|
||||||
{ noremap = true, silent = true, desc = 'See all pickers' }
|
|
||||||
)
|
|
||||||
vim.keymap.set(
|
|
||||||
'n',
|
|
||||||
'<leader>f.',
|
|
||||||
b.resume,
|
|
||||||
{ noremap = true, silent = true, desc = 'Fuzzy find resume' }
|
|
||||||
)
|
|
||||||
vim.keymap.set(
|
|
||||||
'n',
|
|
||||||
'<leader>fs',
|
|
||||||
b.lsp_document_symbols,
|
|
||||||
{ noremap = true, silent = true, desc = 'Fuzzy find treesitter objects' }
|
|
||||||
)
|
|
||||||
vim.keymap.set(
|
|
||||||
'n',
|
|
||||||
'<leader><leader>',
|
|
||||||
'<cmd>Telescope scope buffers<cr>',
|
|
||||||
{ noremap = true, silent = true, desc = 'Pick buffers (scope.nvim)' }
|
|
||||||
)
|
|
||||||
vim.keymap.set(
|
|
||||||
'n',
|
|
||||||
'<leader>fp',
|
|
||||||
'<cmd>Telescope yank_history<cr>',
|
|
||||||
{ noremap = true, silent = true, desc = 'Pick history (yanky.nvim)' }
|
|
||||||
)
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue