aboutsummaryrefslogtreecommitdiff
path: root/runtime/autoload/freebasic.vim
diff options
context:
space:
mode:
authorChristian Clason <c.clason@uni-graz.at>2022-01-31 15:27:01 +0100
committerGitHub <noreply@github.com>2022-01-31 15:27:01 +0100
commit79b92da0d289d1adcd0bb27c7ee5786be460c166 (patch)
tree8cedbea9a81059228303239537cf7fc4346f0d12 /runtime/autoload/freebasic.vim
parentf195345c936eaecf423ab79473003e1ab337a17d (diff)
downloadrneovim-79b92da0d289d1adcd0bb27c7ee5786be460c166.tar.gz
rneovim-79b92da0d289d1adcd0bb27c7ee5786be460c166.tar.bz2
rneovim-79b92da0d289d1adcd0bb27c7ee5786be460c166.zip
vim-patch:partial:f10911e5db16 (#17248)
Update runtime files https://github.com/vim/vim/commit/f10911e5db16f1fe6ab519c5d091ad0c1df0d063
Diffstat (limited to 'runtime/autoload/freebasic.vim')
-rw-r--r--runtime/autoload/freebasic.vim42
1 files changed, 42 insertions, 0 deletions
diff --git a/runtime/autoload/freebasic.vim b/runtime/autoload/freebasic.vim
new file mode 100644
index 0000000000..fe6d2745be
--- /dev/null
+++ b/runtime/autoload/freebasic.vim
@@ -0,0 +1,42 @@
+" Vim filetype plugin file
+" Language: FreeBASIC
+" Maintainer: Doug Kearns <dougkearns@gmail.com>
+" Last Change: 2021 Mar 16
+
+" Dialects can be one of fb, qb, fblite, or deprecated
+" Precedence is forcelang > #lang > lang
+function! freebasic#GetDialect() abort
+ if exists("g:freebasic_forcelang")
+ return g:freebasic_forcelang
+ endif
+
+ if exists("g:freebasic_lang")
+ let dialect = g:freebasic_lang
+ else
+ let dialect = "fb"
+ endif
+
+ " override with #lang directive or metacommand
+
+ let skip = "has('syntax_items') && synIDattr(synID(line('.'), col('.'), 1), 'name') =~ 'Comment$'"
+ let pat = '\c^\s*\%(#\s*lang\s\+\|''\s*$lang\s*:\s*\)"\([^"]*\)"'
+
+ let save_cursor = getcurpos()
+ call cursor(1, 1)
+ " let lnum = search(pat, 'n', '', '', skip) " 'skip' needs 8.2.0915
+ let lnum = search(pat, 'n', '', '')
+ call setpos('.', save_cursor)
+
+ if lnum
+ let word = matchlist(getline(lnum), pat)[1]
+ if word =~? '\%(fb\|deprecated\|fblite\|qb\)'
+ let dialect = word
+ else
+ echomsg "freebasic#GetDialect: Invalid lang, found '" .. word .. "' at line " .. lnum .. " " .. getline(lnum)
+ endif
+ endif
+
+ return dialect
+endfunction
+
+" vim: nowrap sw=2 sts=2 ts=8 noet fdm=marker: