Mercurial > vim
view runtime/ftplugin/freebasic.vim @ 32788:80152cf7ce63 v9.0.1710
patch 9.0.1710: scrolloff options work slightly different
Commit: https://github.com/vim/vim/commit/4a8eb6e7a9df10f79bf95301ced012f0d6a13088
Author: Christian Brabandt <cb@256bit.org>
Date: Sun Aug 13 19:43:42 2023 +0200
patch 9.0.1710: scrolloff options work slightly different
Problem: sidescrolloff and scrolloff options work slightly
different than other global-local options
Solution: Make it behave consistent for all global-local options
It was noticed, that sidescrolloff and scrolloff options behave
differently in comparison to other global-local window options like
'listchars'
So make those two behave like other global-local options. Also add some
extra documentation for a few special local-window options.
Add a few tests to make sure all global-local window options behave
similar
closes: #12956
closes: #12643
Signed-off-by: Christian Brabandt <cb@256bit.org>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sun, 13 Aug 2023 20:00:04 +0200 |
parents | 912224cab37f |
children | 8ae680be2a51 |
line wrap: on
line source
" Vim filetype plugin file " Language: FreeBASIC " Maintainer: Doug Kearns <dougkearns@gmail.com> " Last Change: 2022 Jun 24 " Setup {{{1 if exists("b:did_ftplugin") finish endif let s:cpo_save = &cpo set cpo&vim runtime! ftplugin/basic.vim let s:dialect = freebasic#GetDialect() " Comments {{{1 " add ''comments before 'comments let &l:comments = "sO:*\ -,mO:*\ \ ,exO:*/,s1:/',mb:',ex:'/,:''," .. &l:comments " Match words {{{1 if exists("loaded_matchit") let s:line_start = '\%(^\s*\)\@<=' let s:not_end = '\%(end\s\+\)\@<!' let b:match_words ..= ',' if s:dialect == 'fb' let b:match_words ..= s:not_end .. '\<constructor\>:\<end\s\+constructor\>,' .. \ s:not_end .. '\<destructor\>:\<end\s\+destructor\>,' .. \ s:not_end .. '\<property\>:\<end\s\+property\>,' .. \ s:not_end .. '\<operator\>:\<end\s\+operator\>,' .. \ s:not_end .. '\<extern\%(\s\+"\)\@=:\<end\s\+extern\>,' endif if s:dialect == 'fb' || s:dialect == 'deprecated' let b:match_words ..= s:not_end .. '\<scope\>:\<end\s\+scope\>,' endif if s:dialect == 'qb' let b:match_words ..= s:not_end .. '\<__asm\>:\<end\s\+__asm\>,' .. \ s:not_end .. '\<__union\>:\<end\s\+__union\>,' .. \ s:not_end .. '\<__with\>:\<end\s\+__with\>,' else let b:match_words ..= s:not_end .. '\<asm\>:\<end\s\+asm\>,' .. \ s:not_end .. '\<namespace\>:\<end\s\+namespace\>,' .. \ s:not_end .. '\<union\>:\<end\s\+union\>,' .. \ s:not_end .. '\<with\>:\<end\s\+with\>,' endif let b:match_words ..= s:not_end .. '\<enum\>:\<end\s\+enum\>,' .. \ s:line_start .. '#\s*\%(if\|ifdef\|ifndef\)\>:' .. \ s:line_start .. '#\s*\%(else\|elseif\)\>:' .. \ s:line_start .. '#\s*endif\>,' .. \ s:line_start .. '#\s*macro\>:' .. s:line_start .. '#\s*endmacro\>,' .. \ "/':'/" " skip "function = <retval>" and "continue { do | for | while }" if s:dialect == "qb" let s:continue = "__continue" else let s:continue = "continue" endif let b:match_skip ..= ' || strpart(getline("."), col(".") - 1) =~? "^\\<function\\s\\+="' .. \ ' || strpart(getline("."), 0, col(".") ) =~? "\\<' .. s:continue .. '\\s\\+"' unlet s:not_end s:line_start endif if (has("gui_win32") || has("gui_gtk")) && exists("b:basic_set_browsefilter") let b:browsefilter = "FreeBASIC Source Files (*.bas)\t*.bas\n" .. \ "FreeBASIC Header Files (*.bi)\t*.bi\n" .. \ "All Files (*.*)\t*.*\n" endif " Cleanup {{{1 let &cpo = s:cpo_save unlet s:cpo_save s:dialect " vim: nowrap sw=2 sts=2 ts=8 noet fdm=marker: