aboutsummaryrefslogtreecommitdiff
path: root/common/home/mosder/.config/nvim/init.lua
diff options
context:
space:
mode:
Diffstat (limited to 'common/home/mosder/.config/nvim/init.lua')
-rw-r--r--common/home/mosder/.config/nvim/init.lua36
1 files changed, 36 insertions, 0 deletions
diff --git a/common/home/mosder/.config/nvim/init.lua b/common/home/mosder/.config/nvim/init.lua
index 61afa8c..296b9b1 100644
--- a/common/home/mosder/.config/nvim/init.lua
+++ b/common/home/mosder/.config/nvim/init.lua
@@ -336,6 +336,42 @@ do
inside_next = 'ii',
},
n_lines = 500,
+ custom_textobjects = {
+ -- snake_case, camelCase, PascalCase, etc; all capitalizations
+ -- courtesy of https://github.com/bvngee
+ -- `is` works fine `as` doesn't - cba to change this
+ s = {
+ -- Lua 5.1 character classes and the undocumented frontier pattern:
+ -- https://www.lua.org/manual/5.1/manual.html#5.4.1
+ -- http://lua-users.org/wiki/FrontierPattern
+ -- note: when I say "letter" I technically mean "letter or digit"
+ {
+ -- Matches a single uppercase letter followed by 1+ lowercase letters.
+ -- This covers:
+ -- - PascalCaseWords (or the latter part of camelCaseWords)
+ '%u[%l%d]+%f[^%l%d]', -- An uppercase letter, 1+ lowercase letters, to end of lowercase letters
+
+ -- Matches lowercase letters up until not lowercase letter.
+ -- This covers:
+ -- - start of camelCaseWords (just the `camel`)
+ -- - snake_case_words in lowercase
+ -- - regular lowercase words
+ '%f[^%s%p][%l%d]+%f[^%l%d]', -- after whitespace/punctuation, 1+ lowercase letters, to end of lowercase letters
+ '^[%l%d]+%f[^%l%d]', -- after beginning of line, 1+ lowercase letters, to end of lowercase letters
+
+ -- Matches uppercase or lowercase letters up until not letters.
+ -- This covers:
+ -- - SNAKE_CASE_WORDS in uppercase
+ -- - Snake_Case_Words in titlecase
+ -- - regular UPPERCASE words
+ -- (it must be both uppercase and lowercase otherwise it will
+ -- match just the first letter of PascalCaseWords)
+ '%f[^%s%p][%a%d]+%f[^%a%d]', -- after whitespace/punctuation, 1+ letters, to end of letters
+ '^[%a%d]+%f[^%a%d]', -- after beginning of line, 1+ letters, to end of letters
+ },
+ '^().*()$',
+ },
+ },
}
-- Add/delete/replace surroundings (brackets, quotes, etc.)