Mercurial > vim
view runtime/ftplugin/perl.vim @ 34546:33cb93a8d573 v9.1.0174
patch 9.1.0174: 'cursorline' and 'wincolor' hl missing with conceal and wrap
Commit: https://github.com/vim/vim/commit/21b0a3df8c4abb884489dfcc0c92b1bbe058f291
Author: zeertzjq <zeertzjq@outlook.com>
Date: Wed Mar 13 20:06:34 2024 +0100
patch 9.1.0174: 'cursorline' and 'wincolor' hl missing with conceal and wrap
Problem: 'cursorline' and 'wincolor' highlight missing with concealed and
wrapped lines.
Solution: Apply 'cursorline' and 'wincolor' highlight to boguscols.
(zeertzjq)
Since 'cursorline' and 'wincolor' highlight apply after the end of the
line, it is more consistent to have them also apply to boguscols.
Assigning MAXCOL to values in ScreenCols[] make mouse click behave the
same with 'cursorline' and 'nocursorline', but such behavior may be
incorrect, as it puts the cursor on the next screen line. That may be
fixed in a future PR.
closes: #14192
Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Wed, 13 Mar 2024 20:15:03 +0100 |
parents | 8ae680be2a51 |
children | 7c7432a53a6c |
line wrap: on
line source
" Vim filetype plugin file " Language: Perl " Maintainer: vim-perl <vim-perl@googlegroups.com> " Homepage: https://github.com/vim-perl/vim-perl " Bugs/requests: https://github.com/vim-perl/vim-perl/issues " License: Vim License (see :help license) " Last Change: 2021 Nov 10 " 2023 Sep 07 by Vim Project (safety check: don't execute perl " from current directory) " 2024 Jan 14 by Vim Project (browsefilter) if exists("b:did_ftplugin") | finish | endif let b:did_ftplugin = 1 " Make sure the continuation lines below do not cause problems in " compatibility mode. let s:save_cpo = &cpo set cpo-=C setlocal formatoptions-=t setlocal formatoptions+=crqol setlocal keywordprg=perldoc\ -f setlocal comments=:# setlocal commentstring=#%s " Provided by Ned Konz <ned at bike-nomad dot com> "--------------------------------------------- setlocal include=\\<\\(use\\\|require\\)\\> " '+' is removed to support plugins in Catalyst or DBIx::Class " where the leading plus indicates a fully-qualified module name. setlocal includeexpr=substitute(substitute(substitute(substitute(v:fname,'+','',''),'::','/','g'),'->\*','',''),'$','.pm','') setlocal define=[^A-Za-z_] setlocal iskeyword+=: " The following line changes a global variable but is necessary to make " gf and similar commands work. Thanks to Andrew Pimlott for pointing " out the problem. let s:old_isfname = &isfname set isfname+=: let s:new_isfname = &isfname augroup perl_global_options au! exe "au BufEnter * if &filetype == 'perl' | let &isfname = '" . s:new_isfname . "' | endif" exe "au BufLeave * if &filetype == 'perl' | let &isfname = '" . s:old_isfname . "' | endif" augroup END " Undo the stuff we changed. let b:undo_ftplugin = "setlocal fo< kp< com< cms< inc< inex< def< isk<" . \ " | let &isfname = '" . s:old_isfname . "'" if get(g:, 'perl_fold', 0) setlocal foldmethod=syntax let b:undo_ftplugin .= " | setlocal fdm<" endif " Set this once, globally. if !exists("perlpath") " safety check: don't execute perl binary by default if dist#vim#IsSafeExecutable('perl', 'perl') try if &shellxquote != '"' let perlpath = system('perl -e "print join(q/,/,@INC)"') else let perlpath = system("perl -e 'print join(q/,/,@INC)'") endif let perlpath = substitute(perlpath,',.$',',,','') catch /E145:/ let perlpath = ".,," endtry else " If we can't call perl to get its path, just default to using the " current directory and the directory of the current file. let perlpath = ".,," endif endif " Append perlpath to the existing path value, if it is set. Since we don't " use += to do it because of the commas in perlpath, we have to handle the " global / local settings, too. if &l:path == "" if &g:path == "" let &l:path=perlpath else let &l:path=&g:path.",".perlpath endif else let &l:path=&l:path.",".perlpath endif let b:undo_ftplugin .= " | setlocal pa<" "--------------------------------------------- " Change the browse dialog to show mainly Perl-related files if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter") let b:browsefilter = "Perl Source Files (*.pl)\t*.pl\n" . \ "Perl Modules (*.pm)\t*.pm\n" . \ "Perl Documentation Files (*.pod)\t*.pod\n" if has("win32") let b:browsefilter .= "All Files (*.*)\t*\n" else let b:browsefilter .= "All Files (*)\t*\n" endif let b:undo_ftplugin .= " | unlet! b:browsefilter" endif " Proper matching for matchit plugin if exists("loaded_matchit") && !exists("b:match_words") let b:match_skip = 's:comment\|string\|perlQQ\|perlShellCommand\|perlHereDoc\|perlSubstitution\|perlTranslation\|perlMatch\|perlFormatField' let b:match_words = '\<if\>:\<elsif\>:\<else\>' let b:undo_ftplugin .= " | unlet! b:match_words b:match_skip" endif " Restore the saved compatibility options. let &cpo = s:save_cpo unlet s:save_cpo s:old_isfname s:new_isfname