[llvm] 8c46413 - [vim] Improve iskeyword for LLVM IR (#117905)
via llvm-commits
llvm-commits at lists.llvm.org
Wed Dec 4 02:56:58 PST 2024
Author: Fraser Cormack
Date: 2024-12-04T10:56:55Z
New Revision: 8c46413f343d0a5b8db48d958890b9038f03b70d
URL: https://github.com/llvm/llvm-project/commit/8c46413f343d0a5b8db48d958890b9038f03b70d
DIFF: https://github.com/llvm/llvm-project/commit/8c46413f343d0a5b8db48d958890b9038f03b70d.diff
LOG: [vim] Improve iskeyword for LLVM IR (#117905)
This patch sets the 'iskeyword' variable to characters found in LLVM IR
identifiers. Keywords are used in many places in vim, most notably being
treated as word boundaries for commands like 'w' and '*'. The aim with
this is to improve the navigability and editability of LLVM IR files as
now one is able to: skip over entire identifiers with motions (e.g.,
`w/e/b`); yank/delete whole identifiers (e.g., `diw`); highlight/search
for the identifier under the cursor (`*`), etc.
More complicated LLVM identifiers including quotation marks are not
supported. The 'iskeyword' variable is just a list of characters, not a
regex, and including quotation marks and all the characters permitted in
quoted identifiers would expand the scope to almost everything and
become less usable. These types of identifiers are rare by comparison.
Note that this does change how words are considered across the entire
LLVM IR file, so including strings, comments, names, etc. Given that the
majority of editing/navigating LLVM IR is working with and across
values, this is arguably a worthwhile trade-off.
Added:
Modified:
llvm/utils/vim/ftplugin/llvm.vim
Removed:
################################################################################
diff --git a/llvm/utils/vim/ftplugin/llvm.vim b/llvm/utils/vim/ftplugin/llvm.vim
index 55315159c18bce..4f38c47552d55b 100644
--- a/llvm/utils/vim/ftplugin/llvm.vim
+++ b/llvm/utils/vim/ftplugin/llvm.vim
@@ -11,3 +11,11 @@ setlocal softtabstop=2 shiftwidth=2
setlocal expandtab
setlocal comments+=:;
setlocal commentstring=;\ %s
+" We treat sequences of the following characters as forming 'keywords', with
+" the aim of easing movement around LLVM identifiers:
+" * identifier prefixes: '%' and '@' (@-@)
+" * all characters where isalpha() returns TRUE (@)
+" * the digits 0-9 (48-57)
+" * other characters that may form identifiers: '_', '.', '-', '$'
+" Comment this out to restore the default behaviour
+setlocal iskeyword=%, at -@,@,48-57,_,.,-,$
More information about the llvm-commits
mailing list