view runtime/syntax/xcompose.vim @ 35308:22c03485f222 v9.1.0456

patch 9.1.0456: Left shift is incorrect with vartabstop and shiftwidth=0 Commit: https://github.com/vim/vim/commit/88d4f255b7b7a19bb4f6489e0ad0956e47d51fed Author: Gary Johnson <garyjohn@spocom.com> Date: Sat Jun 1 20:51:33 2024 +0200 patch 9.1.0456: Left shift is incorrect with vartabstop and shiftwidth=0 Problem: Left shift is incorrect with vartabstop and shiftwidth=0 Solution: make tabstop_at() function aware of shift direction (Gary Johnson) The problem was that with 'vartabstop' set and 'shiftwidth' equal 0, left shifts using << were shifting the line to the wrong column. The tabstop to the right of the first character in the line was being used as the shift amount instead of the tabstop to the left of that first character. The reason was that the tabstop_at() function always returned the value of the tabstop to the right of the given column and was not accounting for the direction of the shift. The solution was to make tabstop_at() aware of the direction of the shift and to choose the tabtop accordingly. A test was added to check this behavior and make sure it doesn't regress. While at it, also fix a few indentation/alignment issues. fixes: #14864 closes: #14887 Signed-off-by: Gary Johnson <garyjohn@spocom.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
author Christian Brabandt <cb@256bit.org>
date Sat, 01 Jun 2024 21:00:03 +0200
parents 4006051bf85d
children
line wrap: on
line source

" Vim syntax file
" Language:	XCompose
" Maintainer:	ObserverOfTime <chronobserver@disroot.org>
" Filenames:	.XCompose, Compose
" Last Change:	2023 Nov 09

" Comments
syn keyword xcomposeTodo contained TODO FIXME XXX
syn match xcomposeComment /#.*/ contains=xcomposeTodo

" Includes
syn keyword xcomposeInclude include nextgroup=xcomposeFile skipwhite
syn match xcomposeFile /"\([^"]\|\\"\)\+"/ contained
syn match xcomposeSubstitution /%[HLS]/ contained containedin=xcomposeFile

" Modifiers
syn keyword xcomposeModifier Ctrl Lock Caps Shift Alt Meta None
syn match xcomposeModifierPrefix /\s*\zs[!~]\ze\s*/

" Keysyms
syn match xcomposeKeysym /<[A-Za-z0-9_]\+>/
syn match xcomposeKeysym /[A-Za-z0-9_]\+/ contained
syn match xcomposeString /"\([^"]\|\\"\)\+"/ contained nextgroup=xcomposeKeysym skipwhite
syn match xcomposeColon /:/ nextgroup=xcomposeKeysym,xcomposeString skipwhite

hi def link xcomposeColon Delimiter
hi def link xcomposeComment Comment
hi def link xcomposeFile String
hi def link xcomposeInclude Include
hi def link xcomposeKeysym Constant
hi def link xcomposeModifier Function
hi def link xcomposeModifierPrefix Operator
hi def link xcomposeString String
hi def link xcomposeSubstitution Special
hi def link xcomposeTodo Todo

let b:current_syntax = 'xcompose'