Mercurial > vim
view runtime/syntax/cmusrc.vim @ 33532:f99f5a56ff27 v9.0.2015
patch 9.0.2015: Vim9: does not handle islocked() from a method correctly
Commit: https://github.com/vim/vim/commit/4c8da025ef8140168b7a09d9fe922ce4bb40f19d
Author: Ernie Rael <errael@raelity.com>
Date: Wed Oct 11 21:35:11 2023 +0200
patch 9.0.2015: Vim9: does not handle islocked() from a method correctly
Problem: Vim9: does not handle islocked() from a method correctly
Solution: Handle islocked() builtin from a method.
- Setup `lval_root` from `f_islocked()`.
- Add function `fill_exec_lval_root()` to get info about executing method.
- `sync_root` added in get_lval to handle method member access.
- Conservative approach to reference counting.
closes: #13309
Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: Ernie Rael <errael@raelity.com>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Wed, 11 Oct 2023 21:45:04 +0200 |
parents | 1218c5353e2b |
children |
line wrap: on
line source
" Vim syntax file " Previous Maintainer: Nikolai Weibull <now@bitwi.se> " Latest Revision: 2007-06-17 if exists("b:current_syntax") finish endif let s:cpo_save = &cpo set cpo&vim setlocal iskeyword+=- syn keyword cmusrcTodo contained TODO FIXME XXX NOTE syn match cmusrcComment contained display '^\s*#.*$' syn match cmusrcBegin display '^' \ nextgroup=cmusrcKeyword,cmusrcComment \ skipwhite syn keyword cmusrcKeyword contained add \ nextgroup=cmusrcAddSwitches,cmusrcURI \ skipwhite syn match cmusrcAddSwitches contained display '-[lpqQ]' \ nextgroup=cmusrcURI \ skipwhite syn match cmusrcURI contained display '.\+' syn keyword cmusrcKeyword contained bind \ nextgroup=cmusrcBindSwitches, \ cmusrcBindContext \ skipwhite syn match cmusrcBindSwitches contained display '-[f]' \ nextgroup=cmusrcBindContext \ skipwhite syn keyword cmusrcBindContext contained common library playlist queue \ browser filters \ nextgroup=cmusrcBindKey \ skipwhite syn match cmusrcBindKey contained display '\S\+' \ nextgroup=cmusrcKeyword \ skipwhite syn keyword cmusrcKeyword contained browser-up colorscheme echo factivate \ filter invert player-next player-pause \ player-play player-prev player-stop quit \ refresh run search-next search-prev shuffle \ unmark win-activate win-add-l win-add-p \ win-add-Q win-add-q win-bottom win-down \ win-mv-after win-mv-before win-next \ win-page-down win-page-up win-remove \ win-sel-cur win-toggle win-top win-up \ win-update syn keyword cmusrcKeyword contained cd \ nextgroup=cmusrcDirectory \ skipwhite syn match cmusrcDirectory contained display '.\+' syn keyword cmusrcKeyword contained clear \ nextgroup=cmusrcClearSwitches syn match cmusrcClearSwitches contained display '-[lpq]' syn keyword cmusrcKeyword contained fset \ nextgroup=cmusrcFSetName \ skipwhite syn match cmusrcFSetName contained display '[^=]\+' \ nextgroup=cmusrcFSetEq syn match cmusrcFSetEq contained display '=' \ nextgroup=cmusrcFilterExpr syn match cmusrcFilterExpr contained display '.\+' syn keyword cmusrcKeyword contained load \ nextgroup=cmusrcLoadSwitches,cmusrcURI \ skipwhite syn match cmusrcLoadSwitches contained display '-[lp]' \ nextgroup=cmusrcURI \ skipwhite syn keyword cmusrcKeyword contained mark \ nextgroup=cmusrcFilterExpr syn keyword cmusrcKeyword contained save \ nextgroup=cmusrcSaveSwitches,cmusrcFile \ skipwhite syn match cmusrcSaveSwitches contained display '-[lp]' \ nextgroup=cmusrcFile \ skipwhite syn match cmusrcFile contained display '.\+' syn keyword cmusrcKeyword contained seek \ nextgroup=cmusrcSeekOffset \ skipwhite syn match cmusrcSeekOffset contained display \ '[+-]\=\%(\d\+[mh]\=\|\%(\%(0\=\d\|[1-5]\d\):\)\=\%(0\=\d\|[1-5]\d\):\%(0\=\d\|[1-5]\d\)\)' syn keyword cmusrcKeyword contained set \ nextgroup=cmusrcOption \ skipwhite syn keyword cmusrcOption contained auto_reshuffle confirm_run \ continue play_library play_sorted repeat \ show_hidden show_remaining_time shuffle \ nextgroup=cmusrcSetTest,cmusrcOptEqBoolean syn match cmusrcSetTest contained display '?' syn match cmusrcOptEqBoolean contained display '=' \ nextgroup=cmusrcOptBoolean syn keyword cmusrcOptBoolean contained true false syn keyword cmusrcOption contained aaa_mode \ nextgroup=cmusrcOptEqAAA syn match cmusrcOptEqAAA contained display '=' \ nextgroup=cmusrcOptAAA syn keyword cmusrcOptAAA contained all artist album syn keyword cmusrcOption contained buffer_seconds \ nextgroup=cmusrcOptEqNumber syn match cmusrcOptEqNumber contained display '=' \ nextgroup=cmusrcOptNumber syn match cmusrcOptNumber contained display '\d\+' syn keyword cmusrcOption contained altformat_current altformat_playlist \ altformat_title altformat_trackwin \ format_current format_playlist format_title \ format_trackwin \ nextgroup=cmusrcOptEqFormat syn match cmusrcOptEqFormat contained display '=' \ nextgroup=cmusrcOptFormat syn match cmusrcOptFormat contained display '.\+' \ contains=cmusrcFormatSpecial syn match cmusrcFormatSpecial contained display '%[0-]*\d*[alDntgydfF=%]' syn keyword cmusrcOption contained color_cmdline_bg color_cmdline_fg \ color_error color_info color_separator \ color_statusline_bg color_statusline_fg \ color_titleline_bg color_titleline_fg \ color_win_bg color_win_cur \ color_win_cur_sel_bg color_win_cur_sel_fg \ color_win_dir color_win_fg \ color_win_inactive_cur_sel_bg \ color_win_inactive_cur_sel_fg \ color_win_inactive_sel_bg \ color_win_inactive_sel_fg \ color_win_sel_bg color_win_sel_fg \ color_win_title_bg color_win_title_fg \ nextgroup=cmusrcOptEqColor syn match cmusrcOptEqColor contained display '=' \ nextgroup=@cmusrcOptColor syn cluster cmusrcOptColor contains=cmusrcOptColorName,cmusrcOptColorValue syn keyword cmusrcOptColorName contained default black red green yellow blue \ magenta cyan gray darkgray lightred lightred \ lightgreen lightyellow lightblue lightmagenta \ lightcyan white syn match cmusrcOptColorValue contained display \ '-1\|0*\%(\d\|[1-9]\d\|1\d\d\|2\%([0-4]\d\|5[0-5]\)\)' syn keyword cmusrcOption contained id3_default_charset output_plugin \ status_display_program \ nextgroup=cmusrcOptEqString syn match cmusrcOption contained \ '\%(dsp\|mixer\)\.\%(alsa\|oss\|sun\)\.\%(channel\|device\)' \ nextgroup=cmusrcOptEqString syn match cmusrcOption contained \ 'dsp\.ao\.\%(buffer_size\|driver\|wav_counter\|wav_dir\)' \ nextgroup=cmusrcOptEqString syn match cmusrcOptEqString contained display '=' \ nextgroup=cmusrcOptString syn match cmusrcOptString contained display '.\+' syn keyword cmusrcOption contained lib_sort pl_sort \ nextgroup=cmusrcOptEqSortKeys syn match cmusrcOptEqSortKeys contained display '=' \ nextgroup=cmusrcOptSortKeys syn keyword cmusrcOptSortKeys contained artist album title tracknumber \ discnumber date genre filename \ nextgroup=cmusrcOptSortKeys \ skipwhite syn keyword cmusrcKeyword contained showbind \ nextgroup=cmusrcSBindContext \ skipwhite syn keyword cmusrcSBindContext contained common library playlist queue \ browser filters \ nextgroup=cmusrcSBindKey \ skipwhite syn match cmusrcSBindKey contained display '\S\+' syn keyword cmusrcKeyword contained toggle \ nextgroup=cmusrcTogglableOpt \ skipwhite syn keyword cmusrcTogglableOpt contained auto_reshuffle aaa_mode \ confirm_run continue play_library play_sorted \ repeat show_hidden show_remaining_time shuffle syn keyword cmusrcKeyword contained unbind \ nextgroup=cmusrcUnbindSwitches, \ cmusrcSBindContext \ skipwhite syn match cmusrcUnbindSwitches contained display '-[f]' \ nextgroup=cmusrcSBindContext \ skipwhite syn keyword cmusrcKeyword contained view \ nextgroup=cmusrcView \ skipwhite syn keyword cmusrcView contained library playlist queue browser filters syn match cmusrcView contained display '[1-6]' syn keyword cmusrcKeyword contained vol \ nextgroup=cmusrcVolume1 \ skipwhite syn match cmusrcVolume1 contained display '[+-]\=\d\+%' \ nextgroup=cmusrcVolume2 \ skipwhite syn match cmusrcVolume2 contained display '[+-]\=\d\+%' hi def link cmusrcTodo Todo hi def link cmusrcComment Comment hi def link cmusrcKeyword Keyword hi def link cmusrcSwitches Special hi def link cmusrcAddSwitches cmusrcSwitches hi def link cmusrcURI Normal hi def link cmusrcBindSwitches cmusrcSwitches hi def link cmusrcContext Type hi def link cmusrcBindContext cmusrcContext hi def link cmusrcKey String hi def link cmusrcBindKey cmusrcKey hi def link cmusrcDirectory Normal hi def link cmusrcClearSwitches cmusrcSwitches hi def link cmusrcFSetName PreProc hi def link cmusrcEq Normal hi def link cmusrcFSetEq cmusrcEq hi def link cmusrcFilterExpr Normal hi def link cmusrcLoadSwitches cmusrcSwitches hi def link cmusrcSaveSwitches cmusrcSwitches hi def link cmusrcFile Normal hi def link cmusrcSeekOffset Number hi def link cmusrcOption PreProc hi def link cmusrcSetTest Normal hi def link cmusrcOptBoolean Boolean hi def link cmusrcOptEqAAA cmusrcEq hi def link cmusrcOptAAA Identifier hi def link cmusrcOptEqNumber cmusrcEq hi def link cmusrcOptNumber Number hi def link cmusrcOptEqFormat cmusrcEq hi def link cmusrcOptFormat String hi def link cmusrcFormatSpecial SpecialChar hi def link cmusrcOptEqColor cmusrcEq hi def link cmusrcOptColor Normal hi def link cmusrcOptColorName cmusrcOptColor hi def link cmusrcOptColorValue cmusrcOptColor hi def link cmusrcOptEqString cmusrcEq hi def link cmusrcOptString Normal hi def link cmusrcOptEqSortKeys cmusrcEq hi def link cmusrcOptSortKeys Identifier hi def link cmusrcSBindContext cmusrcContext hi def link cmusrcSBindKey cmusrcKey hi def link cmusrcTogglableOpt cmusrcOption hi def link cmusrcUnbindSwitches cmusrcSwitches hi def link cmusrcView Normal hi def link cmusrcVolume1 Number hi def link cmusrcVolume2 Number let b:current_syntax = "cmusrc" let &cpo = s:cpo_save unlet s:cpo_save