feat: add nvimdots
This commit is contained in:
@@ -0,0 +1,578 @@
|
||||
return function()
|
||||
-- This list delineates the per-language nodes used for guiding |ibl| in highlighting the current scope
|
||||
-- It is extracted from each language's `indents.scm` file
|
||||
-- NOTE: Only a subset of the supported programming languages is included
|
||||
-- If your preferred language isn't listed, you can add it to the user config
|
||||
local nodes = {
|
||||
bibtex = {
|
||||
"entry",
|
||||
},
|
||||
c = {
|
||||
"case_statement",
|
||||
"compound_literal_expression",
|
||||
"enumerator_list",
|
||||
"field_declaration_list",
|
||||
"initializer_list",
|
||||
"init_declarator",
|
||||
},
|
||||
cmake = {
|
||||
"block_def",
|
||||
"foreach_loop",
|
||||
"function_def",
|
||||
"if_condition",
|
||||
"macro_def",
|
||||
"normal_command",
|
||||
"while_loop",
|
||||
},
|
||||
cpp = {
|
||||
"case_statement",
|
||||
"compound_literal_expression",
|
||||
"condition_clause",
|
||||
"enumerator_list",
|
||||
"field_declaration_list",
|
||||
"field_initializer_list",
|
||||
"init_declarator",
|
||||
"initializer_list",
|
||||
"namespace_definition",
|
||||
},
|
||||
css = {
|
||||
"block",
|
||||
"declaration",
|
||||
},
|
||||
d = {
|
||||
"aggregate_body",
|
||||
"block_statement",
|
||||
"case_statement",
|
||||
"expression_statement",
|
||||
"function_body",
|
||||
"parameters",
|
||||
"scope_statement",
|
||||
"template_parameters",
|
||||
},
|
||||
dart = {
|
||||
"arguments",
|
||||
"class_body",
|
||||
"formal_parameter",
|
||||
"formal_parameter_list",
|
||||
"function_body",
|
||||
"function_expression_body",
|
||||
"initializers",
|
||||
"list_literal",
|
||||
"return_statement",
|
||||
"switch_block",
|
||||
},
|
||||
dot = {
|
||||
"block",
|
||||
"attr_list",
|
||||
},
|
||||
ecma = {
|
||||
"arguments",
|
||||
"array",
|
||||
"binary_expression",
|
||||
"call_expression",
|
||||
"class_body",
|
||||
"export_clause",
|
||||
"formal_parameters",
|
||||
"named_imports",
|
||||
"object",
|
||||
"object_pattern",
|
||||
"parenthesized_expression",
|
||||
"return_statement",
|
||||
"switch_case",
|
||||
"switch_default",
|
||||
"switch_statement",
|
||||
"template_substitution",
|
||||
"ternary_expression",
|
||||
},
|
||||
elixir = {
|
||||
"arguments",
|
||||
"block",
|
||||
"do_block",
|
||||
"list",
|
||||
"map",
|
||||
"tuple",
|
||||
},
|
||||
firrtl = {
|
||||
"memory",
|
||||
},
|
||||
fortran = {
|
||||
"derived_type_definition",
|
||||
"do_loop_statement",
|
||||
"enum",
|
||||
"function",
|
||||
"if_statement",
|
||||
"module",
|
||||
"program",
|
||||
"subroutine",
|
||||
"where_statement",
|
||||
},
|
||||
gleam = {
|
||||
"anonymous_function",
|
||||
"assert",
|
||||
"case",
|
||||
"constant",
|
||||
"external_function",
|
||||
"function",
|
||||
"import",
|
||||
"let",
|
||||
"list",
|
||||
"constant",
|
||||
"function",
|
||||
"type_definition",
|
||||
"type_alias",
|
||||
"todo",
|
||||
"tuple",
|
||||
},
|
||||
go = {
|
||||
"call_expression",
|
||||
"communication_case",
|
||||
"const_declaration",
|
||||
"default_case",
|
||||
"expression_case",
|
||||
"import_declaration",
|
||||
"literal_value",
|
||||
"parameter_list",
|
||||
"struct_type",
|
||||
"type_case",
|
||||
"type_declaration",
|
||||
"var_declaration",
|
||||
},
|
||||
html = {
|
||||
"start_tag",
|
||||
"self_closing_tag",
|
||||
},
|
||||
java = {
|
||||
"annotation_argument_list",
|
||||
"annotation_type_body",
|
||||
"argument_list",
|
||||
"array_initializer",
|
||||
"class_body",
|
||||
"constructor_body",
|
||||
"element_value_array_initializer",
|
||||
"enum_body",
|
||||
"formal_parameters",
|
||||
"interface_body",
|
||||
"method_invocation",
|
||||
"switch_block",
|
||||
},
|
||||
javascript = {
|
||||
"arguments",
|
||||
"array",
|
||||
"binary_expression",
|
||||
"call_expression",
|
||||
"class_body",
|
||||
"export_clause",
|
||||
"formal_parameters",
|
||||
"jsx_expression",
|
||||
"jsx_self_closing_element",
|
||||
"named_imports",
|
||||
"object",
|
||||
"object_pattern",
|
||||
"parenthesized_expression",
|
||||
"return_statement",
|
||||
"switch_case",
|
||||
"switch_default",
|
||||
"switch_statement",
|
||||
"template_substitution",
|
||||
"ternary_expression",
|
||||
},
|
||||
julia = {
|
||||
"assignment",
|
||||
"call_expression",
|
||||
"compound_statement",
|
||||
"comprehension_expression",
|
||||
"for_binding",
|
||||
"if_statement",
|
||||
"matrix_expression",
|
||||
"parenthesized_expression",
|
||||
"struct_definition",
|
||||
"tuple_expression",
|
||||
"vector_expression",
|
||||
},
|
||||
just = {
|
||||
"external_command",
|
||||
"recipe",
|
||||
"string",
|
||||
},
|
||||
linkerscript = {
|
||||
"memory_command",
|
||||
"output_section",
|
||||
"phdrs_command",
|
||||
"sections_command",
|
||||
},
|
||||
lua = {
|
||||
"arguments",
|
||||
"field",
|
||||
"method_index_expression",
|
||||
"return_statement",
|
||||
"table_constructor",
|
||||
},
|
||||
matlab = {
|
||||
"class_definition",
|
||||
"enumeration",
|
||||
"events",
|
||||
"for_statement",
|
||||
"if_statement",
|
||||
"methods",
|
||||
"properties",
|
||||
"switch_statement",
|
||||
"try_statement",
|
||||
"while_statement",
|
||||
},
|
||||
ninja = {
|
||||
"build",
|
||||
"pool",
|
||||
"rule",
|
||||
},
|
||||
ocaml = {
|
||||
"application_expression",
|
||||
"do_clause",
|
||||
"external",
|
||||
"field_expression",
|
||||
"if_expression",
|
||||
"list_expression",
|
||||
"parenthesized_expression",
|
||||
"record_declaration",
|
||||
"record_expression",
|
||||
"try_expression",
|
||||
"type_binding",
|
||||
"value_specification",
|
||||
},
|
||||
pascal = {
|
||||
"arrInitializer",
|
||||
"block",
|
||||
"declArgs",
|
||||
"declClass",
|
||||
"declConsts",
|
||||
"declProc",
|
||||
"declTypes",
|
||||
"declUses",
|
||||
"declVars",
|
||||
"defaultValue",
|
||||
"exprArgs",
|
||||
"exprBrackets",
|
||||
"exprParens",
|
||||
"exprSubscript",
|
||||
"recInitializer",
|
||||
"statement",
|
||||
},
|
||||
php = {
|
||||
"arguments",
|
||||
"array_creation_expression",
|
||||
"binary_expression",
|
||||
"case_statement",
|
||||
"compound_statement",
|
||||
"declaration_list",
|
||||
"default_statement",
|
||||
"enum_declaration_list",
|
||||
"formal_parameters",
|
||||
"match_block",
|
||||
"member_call_expression",
|
||||
"parenthesized_expression",
|
||||
"return_statement",
|
||||
"switch_block",
|
||||
},
|
||||
python = {
|
||||
"binary_operator",
|
||||
"case_clause",
|
||||
"concatenated_string",
|
||||
"for_statement",
|
||||
"generator_expression",
|
||||
"if_statement",
|
||||
"import_from_statement",
|
||||
"lambda",
|
||||
"list_pattern",
|
||||
"match_statement",
|
||||
"parenthesized_expression",
|
||||
"try_statement",
|
||||
"tuple_pattern",
|
||||
"while_statement",
|
||||
"with_statement",
|
||||
},
|
||||
query = {
|
||||
"list",
|
||||
"predicate",
|
||||
},
|
||||
r = {
|
||||
"brace_list",
|
||||
"call",
|
||||
"paren_list",
|
||||
"pipe",
|
||||
"special",
|
||||
},
|
||||
readline = {
|
||||
"conditional_construct",
|
||||
},
|
||||
ruby = {
|
||||
"argument_list",
|
||||
"array",
|
||||
"assignment",
|
||||
"begin",
|
||||
"call",
|
||||
"case",
|
||||
"for",
|
||||
"hash",
|
||||
"if",
|
||||
"module",
|
||||
"parenthesized_statements",
|
||||
"singleton_class",
|
||||
"singleton_method",
|
||||
"unless",
|
||||
"until",
|
||||
"while",
|
||||
},
|
||||
rust = {
|
||||
"arguments",
|
||||
"array_expression",
|
||||
"assignment_expression",
|
||||
"call_expression",
|
||||
"enum_variant_list",
|
||||
"field_declaration_list",
|
||||
"macro_definition",
|
||||
"match_block",
|
||||
"mod_item",
|
||||
"ordered_field_declaration_list",
|
||||
"parameters",
|
||||
"struct_expression",
|
||||
"struct_pattern",
|
||||
"token_repetition",
|
||||
"token_tree",
|
||||
"trait_item",
|
||||
"tuple_expression",
|
||||
"tuple_pattern",
|
||||
"tuple_struct_pattern",
|
||||
"tuple_type",
|
||||
"use_list",
|
||||
"where_clause",
|
||||
},
|
||||
scss = {
|
||||
"block",
|
||||
"declaration",
|
||||
"each_statement",
|
||||
"mixin_statement",
|
||||
"while_statement",
|
||||
},
|
||||
sql = {
|
||||
"case",
|
||||
"column_definitions",
|
||||
"cte",
|
||||
"insert",
|
||||
"select",
|
||||
"subquery",
|
||||
"when_clause",
|
||||
},
|
||||
ssh_config = {
|
||||
"host_declaration",
|
||||
"match_declaration",
|
||||
},
|
||||
swift = {
|
||||
"array_literal",
|
||||
"array_type",
|
||||
"assignment",
|
||||
"call_expression",
|
||||
"class_body",
|
||||
"computed_getter",
|
||||
"computed_property",
|
||||
"computed_setter",
|
||||
"control_transfer_statement",
|
||||
"deinit_declaration",
|
||||
"dictionary_literal",
|
||||
"dictionary_type",
|
||||
"didset_clause",
|
||||
"enum_class_body",
|
||||
"init_declaration",
|
||||
"lambda_literal",
|
||||
"protocol_body",
|
||||
"subscript_declaration",
|
||||
"tuple_expression",
|
||||
"tuple_type",
|
||||
"type_parameters",
|
||||
"willset_clause",
|
||||
"willset_didset_block",
|
||||
},
|
||||
tablegen = {
|
||||
"assert",
|
||||
"value_suffix",
|
||||
},
|
||||
tcl = {
|
||||
"braced_word_simple",
|
||||
"command",
|
||||
"command_substitution",
|
||||
"conditional",
|
||||
"foreach",
|
||||
"namespace",
|
||||
"procedure",
|
||||
"try",
|
||||
"while",
|
||||
},
|
||||
teal = {
|
||||
"record_declaration",
|
||||
"function_body",
|
||||
"table_constructor",
|
||||
"return_statement",
|
||||
"while_statement",
|
||||
},
|
||||
terraform = {
|
||||
"block",
|
||||
"function_call",
|
||||
"object",
|
||||
"tuple",
|
||||
},
|
||||
textproto = {
|
||||
"message_list",
|
||||
"message_value",
|
||||
"scalar_list",
|
||||
},
|
||||
toml = {
|
||||
"array",
|
||||
"inline_table",
|
||||
},
|
||||
typescript = {
|
||||
"arguments",
|
||||
"array",
|
||||
"binary_expression",
|
||||
"call_expression",
|
||||
"class_body",
|
||||
"enum_declaration",
|
||||
"export_clause",
|
||||
"formal_parameters",
|
||||
"interface_declaration",
|
||||
"named_imports",
|
||||
"object",
|
||||
"object_pattern",
|
||||
"object_type",
|
||||
"parenthesized_expression",
|
||||
"return_statement",
|
||||
"switch_case",
|
||||
"switch_default",
|
||||
"switch_statement",
|
||||
"template_substitution",
|
||||
"ternary_expression",
|
||||
},
|
||||
vue = {
|
||||
"start_tag",
|
||||
},
|
||||
xml = {
|
||||
"element",
|
||||
},
|
||||
zig = {
|
||||
"Block",
|
||||
"ContainerDecl",
|
||||
"InitList",
|
||||
"SwitchExpr",
|
||||
},
|
||||
}
|
||||
|
||||
require("modules.utils").load_plugin("ibl", {
|
||||
enabled = true,
|
||||
debounce = 200,
|
||||
indent = {
|
||||
char = "│",
|
||||
tab_char = "│",
|
||||
smart_indent_cap = true,
|
||||
priority = 2,
|
||||
},
|
||||
whitespace = { remove_blankline_trail = true },
|
||||
-- Note: The `scope` field requires treesitter to be set up
|
||||
scope = {
|
||||
enabled = true,
|
||||
char = "┃",
|
||||
show_start = false,
|
||||
show_end = false,
|
||||
injected_languages = true,
|
||||
priority = 1000,
|
||||
include = {
|
||||
node_type = {
|
||||
angular = nodes.html,
|
||||
arduino = nodes.cpp,
|
||||
astro = nodes.html,
|
||||
bibtex = nodes.bibtex,
|
||||
c = nodes.c,
|
||||
cmake = nodes.cmake,
|
||||
cpp = nodes.cpp,
|
||||
css = nodes.css,
|
||||
cuda = nodes.cpp,
|
||||
d = nodes.d,
|
||||
dart = nodes.dart,
|
||||
dot = nodes.dot,
|
||||
ecma = nodes.ecma,
|
||||
elixir = nodes.elixir,
|
||||
firrtl = nodes.firrtl,
|
||||
fortran = nodes.fortran,
|
||||
glsl = nodes.c,
|
||||
gleam = nodes.gleam,
|
||||
go = nodes.go,
|
||||
hlsl = nodes.cpp,
|
||||
html = nodes.html,
|
||||
java = nodes.java,
|
||||
javascript = nodes.javascript,
|
||||
julia = nodes.julia,
|
||||
just = nodes.just,
|
||||
linkerscript = nodes.linkerscript,
|
||||
lua = nodes.lua,
|
||||
luau = nodes.lua,
|
||||
matlab = nodes.matlab,
|
||||
ninja = nodes.ninja,
|
||||
objc = nodes.c,
|
||||
ocaml = nodes.ocaml,
|
||||
ocaml_interface = nodes.ocaml,
|
||||
pascal = nodes.pascal,
|
||||
php = nodes.php,
|
||||
python = nodes.python,
|
||||
query = nodes.query,
|
||||
r = nodes.r,
|
||||
readline = nodes.readline,
|
||||
ruby = nodes.ruby,
|
||||
rust = nodes.rust,
|
||||
scss = nodes.scss,
|
||||
sql = nodes.sql,
|
||||
ssh_config = nodes.ssh_config,
|
||||
swift = nodes.swift,
|
||||
tablegen = nodes.tablegen,
|
||||
tcl = nodes.tcl,
|
||||
teal = nodes.teal,
|
||||
terraform = nodes.terraform,
|
||||
textproto = nodes.textproto,
|
||||
toml = nodes.toml,
|
||||
typescript = nodes.typescript,
|
||||
vue = nodes.vue,
|
||||
xml = nodes.xml,
|
||||
zig = nodes.zig,
|
||||
},
|
||||
},
|
||||
},
|
||||
exclude = {
|
||||
buftypes = {
|
||||
"help",
|
||||
"nofile",
|
||||
"prompt",
|
||||
"quickfix",
|
||||
"terminal",
|
||||
},
|
||||
filetypes = {
|
||||
"", -- for all buffers without a file type
|
||||
"alpha",
|
||||
"bigfile",
|
||||
"checkhealth",
|
||||
"dap-repl",
|
||||
"diff",
|
||||
"fugitive",
|
||||
"fugitiveblame",
|
||||
"git",
|
||||
"gitcommit",
|
||||
"help",
|
||||
"log",
|
||||
"markdown",
|
||||
"notify",
|
||||
"NvimTree",
|
||||
"Outline",
|
||||
"qf",
|
||||
"TelescopePrompt",
|
||||
"text",
|
||||
"toggleterm",
|
||||
"undotree",
|
||||
"vimwiki",
|
||||
},
|
||||
},
|
||||
})
|
||||
end
|
||||
Reference in New Issue
Block a user