Merge branch 'dev' into venus

nvim: display packer in a floating window
        change telescope comment in packer.lua
        actually use fzf in telescope
        add telescope-file-browser extension
        add descriptions to mappings
        remaps telescope functionnalities
        add telescope.help_tags mapping
        use <leader> to switch colorscheme
        remove icons from completion
        use textobjects with treesitter

system: export PATH in the right place
This commit is contained in:
David JULIEN 2023-01-07 19:20:23 +01:00
commit 8c29c45967
Signed by: swytch
GPG Key ID: 498590A3AA82A06F
6 changed files with 205 additions and 49 deletions

View File

@ -3,33 +3,78 @@
-- License : GPLv3
-- Description : neovim mappings file
vim.keymap.set({ "n", "v" }, "<space>", "<Nop>", { silent = true })
vim.keymap.set({ "n", "v" }, "<space>",
"<Nop>",
{
silent = true,
desc = "leader key"
})
vim.g.mapleader = " "
-- Dealing with word wrap
vim.keymap.set("n", "k", "v:count == 0 ? 'gk' : 'k'",
{ expr = true, silent = true })
vim.keymap.set("n", "j", "v:count == 0 ? 'gj' : 'j'",
{ expr = true, silent = true })
vim.keymap.set("n", "k",
"v:count == 0 ? 'gk' : 'k'",
{
expr = true,
silent = true,
desc = "Smart up motion"
})
vim.keymap.set("n", "j",
"v:count == 0 ? 'gj' : 'j'",
{
expr = true,
silent = true,
desc = "Smart down motion"
})
vim.keymap.set("n", "<leader>y", "\"+y")
vim.keymap.set("n", "<leader>p", "\"+P")
vim.keymap.set("n", "<leader><enter>", "<cmd>w! | !compiler %<CR>")
vim.keymap.set("n", "<leader>u", function() require("packer").sync() end)
vim.keymap.set("n", "<leader>y",
"\"+y",
{ desc = "Yank to clipboard"}
)
vim.keymap.set("n", "<leader>p",
"\"+P",
{ desc = "Copy from clipboard"}
)
vim.keymap.set("n", "<leader><enter>",
"<cmd>w! | !compiler %<CR>",
{ desc = "Compile current file using ~/.local/bin/compiler"}
)
vim.keymap.set("n", "<leader>u",
function() require("packer").sync() end,
{ desc = "Sync packer config and update plugins"}
)
-- telescope
vim.keymap.set("n", "<leader>tf",
function() require("telescope.builtin").find_files() end)
function() require("telescope.builtin").find_files() end,
{ desc = "Fuzzy find files" }
)
vim.keymap.set("n", "<leader>tb",
function() require("telescope.builtin").buffers() end)
function() require("telescope").extensions.file_browser.file_browser() end,
{ desc = "Open file browser" }
)
vim.keymap.set("n", "<leader>t/",
function() require("telescope.builtin").buffers() end,
{ desc = "Grep through buffers" }
)
vim.keymap.set("n", "<leader>tg",
function() require("telescope.builtin").grep_string() end)
function() require("telescope.builtin").grep_string() end,
{ desc = "Grep current word" }
)
vim.keymap.set("n", "<leader>th",
function() require("telescope.builtin").help_tags() end,
{ desc = "Search through help" }
)
vim.keymap.set("n", "<leader>tl",
function() require("telescope.builtin").live_grep() end)
function() require("telescope.builtin").live_grep() end,
{ desc = "Grep interactively" }
)
-- colorscheme
vim.keymap.set("n", "<C-s>",
function() require("astronomy").toggle_variant() end)
vim.keymap.set("n", "<leader>s",
function() require("astronomy").toggle_variant() end,
{ desc = "Switch between dark and light colorscheme" }
)
-- snippets
vim.keymap.set({ "i", "s" }, "<C-E>", "<Plug>luasnip-next-choice")

View File

@ -18,33 +18,7 @@ end
cmp.event:on( 'confirm_done', cmp_autopairs.on_confirm_done({ map_char = { tex = '' } }))
-- Custom item icons
local icons = {
Class = "",
Color = "",
Constant = "µ",
Constructor = "",
Enum = "",
EnumMember = "",
Event = "",
Field = "",
File = "",
Folder = "",
Function = "",
Keyword = "",
Interface = "",
Method = "",
Module = "",
Operator = "",
Property = "",
Reference = "",
Snippet = "",
Struct = "",
Text = "",
TypeParameter = "",
Unit = "",
Value = "",
Variable = "",
}
local icons = { }
cmp.setup {
completion = {
@ -62,8 +36,6 @@ cmp.setup {
},
formatting = {
format = function(entry, vim_item)
vim_item.kind = string.format("%s %s", icons[vim_item.kind],
vim_item.kind)
vim_item.menu = ({
nvim_lsp = "[lsp]",
nvim_lua = "[nvim]",

View File

@ -29,6 +29,9 @@ packer.init({
removed_sym = '- ', -- The symbol for an unused plugin which was removed
moved_sym = '', -- The symbol for a plugin which was moved (e.g. from opt to start)
header_sym = '', -- The symbol for the header line in packer's display
open_fn = function()
return require('packer.util').float({ border = "single" })
end, -- Display in a floating window
},
})
@ -51,7 +54,12 @@ return require("packer").startup(function()
config = function() require("plugin.treesitter") end
}
-- fuzzy finder
use { -- Additional text objects via treesitter
'nvim-treesitter/nvim-treesitter-textobjects',
after = 'nvim-treesitter',
}
-- telescope
use {
"nvim-telescope/telescope.nvim",
requires = {
@ -61,8 +69,16 @@ return require("packer").startup(function()
{
"nvim-telescope/telescope-fzf-native.nvim",
run = "make"
},
{
"nvim-telescope/telescope-file-browser.nvim",
}
},
config = function()
require("telescope")
require("telescope").load_extension("fzf")
require("telescope").load_extension("file_browser")
end
}
-- LSP

View File

@ -0,0 +1,22 @@
-- Author : swytch
-- Created : Monday Dec. 26, 2022 18:39:16 CET
-- License : GPLv3
-- Description : treesitter config file
require("telescope").setup {
extensions = {
file_browser = {
theme = "ivy",
-- disables netrw and use telescope-file-browser in its place
hijack_netrw = true,
mappings = {
["i"] = {
-- your custom insert mode mappings
},
["n"] = {
-- your custom normal mode mappings
},
},
},
},
}

View File

@ -4,12 +4,112 @@
-- Description : treesitter config file
require("nvim-treesitter.configs").setup {
ensure_installed = { "c", "lua", "python", "rust", "bash" },
ignore_install = { "javascript" },
ensure_installed = { "c", "lua", "rust", "bash", "vim" },
highlight = {
enable = true,
},
indent = {
enable = true,
},
incremental_selection = {
enable = true,
keymaps = {
init_selection = "<C-Space>",
node_incremental = "<C-Space>",
scope_incremental = "<Tab>",
node_decremental = "<BS>",
},
},
textobjects = {
select = {
enable = true,
lookahead = true, -- Automatically jump forward to textobj, similar to targets.vim
keymaps = {
-- use the capture groups defined in textobjects.scm
["ap"] = {
query = "@parameter.outer",
desc = "Select parameter region"
},
["ip"] = {
query = "@parameter.inner",
desc = "Select inner part of a parameter region"
},
["af"] = {
query = "@function.outer",
desc = "Select a function block"
},
["if"] = {
query = "@function.inner",
desc = "Select inner part of a function"
},
["ac"] = {
query = "@class.outer",
desc = "Select a class block"
},
["ic"] = {
query = "@class.inner",
desc = "Select inner part of a class"
},
},
},
move = {
enable = true,
set_jumps = true, -- whether to set jumps in the jumplist
goto_next_start = {
["]m"] = {
query = "@function.outer",
desc = "Jump to next function",
},
["])"] = {
query = "@class.outer",
desc = "Jump to next class",
},
},
goto_next_end = {
["]M"] = {
query = "@function.outer",
desc = "Jump after next function",
},
["]]"] = {
query = "@class.outer",
desc = "Jump after next class",
},
},
goto_previous_start = {
["[m"] = {
query = "@function.outer",
desc = "Jump to previous function",
},
["[)"] = {
query = "@class.outer",
desc = "Jump to previous class",
},
},
goto_previous_end = {
["[M"] = {
query = "@function.outer",
desc = "Jump after previous function",
},
["[]"] = {
query = "@class.outer",
desc = "Jump after previous class",
},
},
},
swap = {
enable = true,
swap_next = {
["<leader>a"] = {
query = "@parameter.inner",
desc = "Swap with next parameter",
},
},
swap_previous = {
["<leader>A"] = {
query = "@parameter.inner",
desc = "Swap with previous parameter",
},
},
},
},
}

View File

@ -1,10 +1,11 @@
#!/bin/zsh
# This file is sourced when launching a DM from startx/xinit
# path
export PATH="$(find $HOME/.local/bin -type d | tr '\n' ':' | sed 's/:$//'):$PATH"
# environment variables
## path
export PATH="$(find $HOME/.local/bin -type d | tr '\n' ':' | sed 's/:$//'):$PATH"
## custom paths
export DOTFILES="$HOME/.dotfiles.git"
export LATEX_RESOURCES="$HOME/documents/latex"