mirror of
https://github.com/LunarVim/LunarVim.git
synced 2024-09-21 02:55:09 +02:00
6258b2b4ba
This adds three plugins that use treesitters parsing to provide smarter text objects [ts_textobjects](https://github.com/nvim-treesitter/nvim-treesitter-textobjects) lets you define text objects for things like functions and classes [ts_textsubjects](https://github.com/RRethy/nvim-treesitter-textsubjects.git) defines a smart text object that selects a semantic block around the cursor [ts_hintobjects](https://github.com/mfussenegger/nvim-ts-hint-textobject) uses easymotion style hint labeling to show all the surrounding semantic blocks, letting you choose the correct one I have also added which-key entries for all the above Co-authored-by: Christian Chiarulli <chris.machine@pm.me>
266 lines
No EOL
12 KiB
Lua
266 lines
No EOL
12 KiB
Lua
CONFIG_PATH = vim.fn.stdpath "config"
|
||
DATA_PATH = vim.fn.stdpath "data"
|
||
CACHE_PATH = vim.fn.stdpath "cache"
|
||
TERMINAL = vim.fn.expand "$TERMINAL"
|
||
|
||
O = {
|
||
format_on_save = true,
|
||
auto_close_tree = 0,
|
||
auto_complete = true,
|
||
colorscheme = "lunar",
|
||
hidden_files = true,
|
||
wrap_lines = false,
|
||
number = true,
|
||
relative_number = true,
|
||
cursorline = true,
|
||
shell = "bash",
|
||
timeoutlen = 100,
|
||
nvim_tree_disable_netrw = 0,
|
||
ignore_case = true,
|
||
smart_case = true,
|
||
lushmode = false,
|
||
hl_search = false,
|
||
transparent_window = false,
|
||
leader_key = "space",
|
||
vnsip_dir = vim.fn.stdpath "config" .. "/snippets",
|
||
|
||
-- @usage pass a table with your desired languages
|
||
treesitter = {
|
||
ensure_installed = "all",
|
||
ignore_install = { "haskell" },
|
||
highlight = { enabled = true },
|
||
rainbow = { enabled = false },
|
||
-- The below are for treesitter-textobjects plugin
|
||
textobj_prefixes = {
|
||
goto_next = "]", -- Go to next
|
||
goto_previous = "[", -- Go to previous
|
||
inner = "i", -- Select inside
|
||
outer = "a", -- Selct around
|
||
swap = "<leader>a", -- Swap with next
|
||
},
|
||
textobj_suffixes = {
|
||
-- Start and End respectively for the goto keys
|
||
-- for other keys it only uses the first
|
||
["function"] = { "f", "F" },
|
||
["class"] = { "m", "M" },
|
||
["parameter"] = { "a", "A" },
|
||
["block"] = { "k", "K" },
|
||
["conditional"] = { "i", "I" },
|
||
["call"] = { "c", "C" },
|
||
["loop"] = { "l", "L" },
|
||
["statement"] = { "s", "S" },
|
||
["comment"] = { "/", "?" },
|
||
},
|
||
-- The below is for treesitter hint textobjects plugin
|
||
hint_labels = { "h", "j", "f", "d", "n", "v", "s", "l", "a" },
|
||
},
|
||
|
||
lsp = {
|
||
popup_border = "single",
|
||
},
|
||
|
||
database = { save_location = "~/.config/nvcode_db", auto_execute = 1 },
|
||
|
||
plugin = {
|
||
-- TODO remove non built-ins
|
||
-- Builtins
|
||
dashboard = { active = false },
|
||
colorizer = { active = false },
|
||
zen = { active = false },
|
||
ts_playground = { active = false },
|
||
ts_context_commentstring = { active = false },
|
||
ts_hintobjects = { active = false },
|
||
ts_textobjects = { active = false },
|
||
ts_textsubjects = { active = false },
|
||
telescope_fzy = { active = false },
|
||
telescope_project = { active = false },
|
||
indent_line = { active = false },
|
||
symbol_outline = { active = false },
|
||
debug = { active = false },
|
||
dap_install = { active = false },
|
||
lazygit = { active = false },
|
||
lush = { active = false },
|
||
diffview = { active = false },
|
||
|
||
----------------------------------------------------------------------
|
||
-- Non builtins
|
||
|
||
octo = { active = false },
|
||
gitlinker = { active = false },
|
||
todo_comments = { active = false },
|
||
gist = { active = false },
|
||
git_blame = { active = false },
|
||
lsp_colors = { active = false },
|
||
ranger = { active = false },
|
||
hop = { active = false },
|
||
dial = { active = false },
|
||
matchup = { active = false },
|
||
numb = { active = false },
|
||
bqf = { active = false },
|
||
trouble = { active = false },
|
||
floatterm = { active = false },
|
||
spectre = { active = false },
|
||
lsp_rooter = { active = false },
|
||
markdown_preview = { active = false },
|
||
bracey = { active = false },
|
||
codi = { active = false },
|
||
sanegx = { active = false },
|
||
snap = { active = false },
|
||
tabnine = { active = false },
|
||
},
|
||
|
||
custom_plugins = {
|
||
-- use lv-config.lua for this not put here
|
||
},
|
||
|
||
user_autocommands = {
|
||
{ "FileType", "qf", "set nobuflisted" },
|
||
},
|
||
|
||
lang = {
|
||
python = {
|
||
linter = "",
|
||
isort = false,
|
||
diagnostics = {
|
||
virtual_text = { spacing = 0, prefix = "" },
|
||
signs = true,
|
||
underline = true,
|
||
},
|
||
analysis = {
|
||
type_checking = "basic",
|
||
auto_search_paths = true,
|
||
use_library_code_types = true,
|
||
},
|
||
},
|
||
dart = {
|
||
sdk_path = "/usr/lib/dart/bin/snapshots/analysis_server.dart.snapshot",
|
||
},
|
||
lua = {
|
||
diagnostics = {
|
||
virtual_text = { spacing = 0, prefix = "" },
|
||
signs = true,
|
||
underline = true,
|
||
},
|
||
},
|
||
sh = {
|
||
-- @usage can be 'shellcheck'
|
||
linter = "",
|
||
-- @usage can be 'shfmt'
|
||
diagnostics = {
|
||
virtual_text = { spacing = 0, prefix = "" },
|
||
signs = true,
|
||
underline = true,
|
||
},
|
||
},
|
||
tsserver = {
|
||
-- @usage can be 'eslint'
|
||
linter = "",
|
||
diagnostics = {
|
||
virtual_text = { spacing = 0, prefix = "" },
|
||
signs = true,
|
||
underline = true,
|
||
},
|
||
},
|
||
json = {
|
||
diagnostics = {
|
||
virtual_text = { spacing = 0, prefix = "" },
|
||
signs = true,
|
||
underline = true,
|
||
},
|
||
},
|
||
tailwindcss = {
|
||
filetypes = {
|
||
"html",
|
||
"css",
|
||
"scss",
|
||
"javascript",
|
||
"javascriptreact",
|
||
"typescript",
|
||
"typescriptreact",
|
||
},
|
||
},
|
||
clang = {
|
||
diagnostics = {
|
||
virtual_text = { spacing = 0, prefix = "" },
|
||
signs = true,
|
||
underline = true,
|
||
},
|
||
cross_file_rename = true,
|
||
header_insertion = "never",
|
||
},
|
||
ruby = {
|
||
diagnostics = {
|
||
virtualtext = { spacing = 0, prefix = "" },
|
||
signs = true,
|
||
underline = true,
|
||
},
|
||
filetypes = { "rb", "erb", "rakefile", "ruby" },
|
||
},
|
||
go = {},
|
||
elixir = {},
|
||
vim = {},
|
||
yaml = {},
|
||
terraform = {},
|
||
rust = {
|
||
rust_tools = {
|
||
active = false,
|
||
},
|
||
linter = "",
|
||
diagnostics = {
|
||
virtual_text = { spacing = 0, prefix = "" },
|
||
signs = true,
|
||
underline = true,
|
||
},
|
||
},
|
||
svelte = {},
|
||
php = {
|
||
environment = {
|
||
php_version = "7.4",
|
||
},
|
||
diagnostics = {
|
||
virtual_text = { spacing = 0, prefix = "" },
|
||
signs = true,
|
||
underline = true,
|
||
},
|
||
filetypes = { "php", "phtml" },
|
||
},
|
||
latex = {},
|
||
kotlin = {},
|
||
html = {},
|
||
elm = {},
|
||
emmet = { active = true },
|
||
graphql = {},
|
||
efm = {},
|
||
docker = {},
|
||
cmake = {},
|
||
java = {},
|
||
css = {
|
||
virtual_text = true,
|
||
},
|
||
},
|
||
|
||
dashboard = {
|
||
|
||
custom_header = {
|
||
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⣀⣀⣀⣀⣀⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
|
||
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣤⣶⣾⠿⠿⠟⠛⠛⠛⠛⠿⠿⣿⣷⣤⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
|
||
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣾⡿⠋⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⠿⣷⣤⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
|
||
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣤⡿⠛⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠛⢿⣦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
|
||
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠒⠂⠉⠉⠉⠉⢩⣿⡿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠹⣷⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
|
||
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⡀⠀⠀⠀⠀⠀⢰⣿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⣿⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
|
||
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⠠⡀⠀⠀⢀⣾⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⣿⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
|
||
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠢⢀⣸⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⣇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
|
||
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⡧⢄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
|
||
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⡇⠀⠈⠁⠒⠤⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
|
||
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣇⠀⠀⠀⠀⠀⠀⠉⠢⠤⠀⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⡟⠈⠑⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
|
||
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢿⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠑⠒⠤⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣿⡇⠀⠀⢀⣣⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
|
||
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⣷⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠀⠀⠒⠢⠤⠄⣀⣀⠀⠀⠀⢠⣿⡟⠀⠀⠀⣺⣿⡿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
|
||
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⠇⠀⠀⠀⠀⠀⣤⡄⠀⠀⢠⣤⡄⠀⢨⣭⣠⣤⣤⣤⡀⠀⠀⢀⣤⣤⣤⣤⡄⠀⠀⠀⣤⣄⣤⣤⣤⠀⠀⣿⣯⠉⠉⣿⡟⠀⠈⢩⣭⣤⣤⠀⠀⠀⠀⣠⣤⣤⣤⣄⣤⣤⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
|
||
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣿⠀⠀⠀⠀⠀⠀⣿⠃⠀⠀⣸⣿⠁⠀⣿⣿⠉⠀⠈⣿⡇⠀⠀⠛⠋⠀⠀⢹⣿⠀⠀⠀⣿⠏⠀⠸⠿⠃⠀⣿⣿⠀⣰⡟⠀⠀⠀⠀⠀⢸⣿⠀⠀⠀⠀⣿⡟⢸⣿⡇⢀⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
|
||
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⡇⠀⠀⠀⠀⠀⢸⣿⠀⠀⠀⣿⡟⠀⢠⣿⡇⠀⠀⢰⣿⡇⠀⣰⣾⠟⠛⠛⣻⡇⠀⠀⢸⡿⠀⠀⠀⠀⠀⠀⢻⣿⢰⣿⠀⠀⠀⠀⠀⠀⣾⡇⠀⠀⠀⢸⣿⠇⢸⣿⠀⢸⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
|
||
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣧⣤⣤⣤⡄⠀⠘⣿⣤⣤⡤⣿⠇⠀⢸⣿⠁⠀⠀⣼⣿⠀⠀⢿⣿⣤⣤⠔⣿⠃⠀⠀⣾⡇⠀⠀⠀⠀⠀⠀⢸⣿⣿⠋⠀⠀⠀⢠⣤⣤⣿⣥⣤⡄⠀⣼⣿⠀⣸⡏⠀⣿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
|
||
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠉⠉⠉⠉⠁⠀⠀⠈⠉⠉⠀⠉⠀⠀⠈⠉⠀⠀⠀⠉⠉⠀⠀⠀⠉⠉⠁⠈⠉⠀⠀⠀⠉⠀⠀⠀⠀⠀⠀⠀⠈⠉⠉⠀⠀⠀⠀⠈⠉⠉⠉⠉⠉⠁⠀⠉⠁⠀⠉⠁⠀⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
|
||
},
|
||
footer = { "chrisatmachine.com" },
|
||
},
|
||
} |