summaryrefslogtreecommitdiff
path: root/mnv/runtime/ftplugin/help.mnv
diff options
context:
space:
mode:
Diffstat (limited to 'mnv/runtime/ftplugin/help.mnv')
-rw-r--r--mnv/runtime/ftplugin/help.mnv47
1 files changed, 47 insertions, 0 deletions
diff --git a/mnv/runtime/ftplugin/help.mnv b/mnv/runtime/ftplugin/help.mnv
new file mode 100644
index 0000000000..8764a5bb0a
--- /dev/null
+++ b/mnv/runtime/ftplugin/help.mnv
@@ -0,0 +1,47 @@
+" MNV filetype plugin file
+" Language: MNV help file
+" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
+" Last Change: 2025 Apr 08
+" 2025 Apr 08 by MNV project (set 'omnifunc' and 'iskeyword', #17073)
+" 2025 Aug 08 by MNV project (unset comment options, #17889)
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&mnv
+
+let b:undo_ftplugin = "setl isk< fo< tw< cole< cocu< keywordprg< omnifunc< comments< cms<"
+
+setl comments= cms=
+
+setlocal formatoptions+=tcroql textwidth=78 keywordprg=:help omnifunc=s:HelpComplete
+let &l:iskeyword='!-~,^*,^|,^",192-255'
+if has("conceal")
+ setlocal cole=2 cocu=nc
+endif
+
+if !exists('*s:HelpComplete')
+ func s:HelpComplete(findstart, base)
+ if a:findstart
+ let colnr = col('.') - 1 " Get the column number before the cursor
+ let line = getline('.')
+ for i in range(colnr - 1, 0, -1)
+ if line[i] ==# '|'
+ return i + 1 " Don't include the `|` in base
+ elseif line[i] ==# "'"
+ return i " Include the `'` in base
+ endif
+ endfor
+ else
+ return taglist('^' .. a:base)
+ \ ->map({_, item -> #{word: item->get('name'), kind: item->get('kind')}})
+ \ ->extend(getcompletion(a:base, 'help'))
+ endif
+ endfunc
+endif
+
+let &cpo = s:cpo_save
+unlet s:cpo_save