annotate runtime/syntax/gdmo.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 46763b01cd9a
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1 " Vim syntax file
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2 " Language: GDMO
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3 " (ISO-10165-4; Guidelines for the Definition of Managed Object)
2908
fd09a9c8468e Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 7
diff changeset
4 " Maintainer: Gyuman (Chester) Kim <violkim@gmail.com>
fd09a9c8468e Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 7
diff changeset
5 " URL: http://classicalprogrammer.wikidot.com/local--files/vim-syntax-file-for-gdmo/gdmo.vim
fd09a9c8468e Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 7
diff changeset
6 " Last change: 8th June, 2011
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7
10048
43efa4f5a8ea commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents: 2908
diff changeset
8 " quit when a syntax file was already loaded
43efa4f5a8ea commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents: 2908
diff changeset
9 if exists("b:current_syntax")
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10 finish
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
12
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
13 " keyword definitions
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
14 syn match gdmoCategory "MANAGED\s\+OBJECT\s\+CLASS"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
15 syn keyword gdmoCategory NOTIFICATION ATTRIBUTE BEHAVIOUR PACKAGE ACTION
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
16 syn match gdmoCategory "NAME\s\+BINDING"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
17 syn match gdmoRelationship "DERIVED\s\+FROM"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
18 syn match gdmoRelationship "SUPERIOR\s\+OBJECT\s\+CLASS"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
19 syn match gdmoRelationship "SUBORDINATE\s\+OBJECT\s\+CLASS"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
20 syn match gdmoExtension "AND\s\+SUBCLASSES"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
21 syn match gdmoDefinition "DEFINED\s\+AS"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
22 syn match gdmoDefinition "REGISTERED\s\+AS"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
23 syn match gdmoExtension "ORDER\s\+BY"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
24 syn match gdmoReference "WITH\s\+ATTRIBUTE"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
25 syn match gdmoReference "WITH\s\+INFORMATION\s\+SYNTAX"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
26 syn match gdmoReference "WITH\s\+REPLY\s\+SYNTAX"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
27 syn match gdmoReference "WITH\s\+ATTRIBUTE\s\+SYNTAX"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
28 syn match gdmoExtension "AND\s\+ATTRIBUTE\s\+IDS"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
29 syn match gdmoExtension "MATCHES\s\+FOR"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
30 syn match gdmoReference "CHARACTERIZED\s\+BY"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
31 syn match gdmoReference "CONDITIONAL\s\+PACKAGES"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
32 syn match gdmoExtension "PRESENT\s\+IF"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
33 syn match gdmoExtension "DEFAULT\s\+VALUE"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
34 syn match gdmoExtension "PERMITTED\s\+VALUES"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
35 syn match gdmoExtension "REQUIRED\s\+VALUES"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
36 syn match gdmoExtension "NAMED\s\+BY"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
37 syn keyword gdmoReference ATTRIBUTES NOTIFICATIONS ACTIONS
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
38 syn keyword gdmoExtension DELETE CREATE
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
39 syn keyword gdmoExtension EQUALITY SUBSTRINGS ORDERING
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
40 syn match gdmoExtension "REPLACE-WITH-DEFAULT"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
41 syn match gdmoExtension "GET"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
42 syn match gdmoExtension "GET-REPLACE"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
43 syn match gdmoExtension "ADD-REMOVE"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
44 syn match gdmoExtension "WITH-REFERENCE-OBJECT"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
45 syn match gdmoExtension "WITH-AUTOMATIC-INSTANCE-NAMING"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
46 syn match gdmoExtension "ONLY-IF-NO-CONTAINED-OBJECTS"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
47
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
48
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
49 " Strings and constants
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
50 syn match gdmoSpecial contained "\\\d\d\d\|\\."
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
51 syn region gdmoString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=gdmoSpecial
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
52 syn match gdmoCharacter "'[^\\]'"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
53 syn match gdmoSpecialCharacter "'\\.'"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
54 syn match gdmoNumber "0[xX][0-9a-fA-F]\+\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
55 syn match gdmoLineComment "--.*"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
56 syn match gdmoLineComment "--.*--"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
57
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
58 syn match gdmoDefinition "^\s*[a-zA-Z][-a-zA-Z0-9_.\[\] \t{}]* *::="me=e-3
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
59 syn match gdmoBraces "[{}]"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
60
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
61 syn sync ccomment gdmoComment
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
62
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
63 " Define the default highlighting.
10048
43efa4f5a8ea commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents: 2908
diff changeset
64 " Only when an item doesn't have highlighting yet
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
65
10051
46763b01cd9a commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents: 10048
diff changeset
66 hi def link gdmoCategory Structure
46763b01cd9a commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents: 10048
diff changeset
67 hi def link gdmoRelationship Macro
46763b01cd9a commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents: 10048
diff changeset
68 hi def link gdmoDefinition Statement
46763b01cd9a commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents: 10048
diff changeset
69 hi def link gdmoReference Type
46763b01cd9a commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents: 10048
diff changeset
70 hi def link gdmoExtension Operator
46763b01cd9a commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents: 10048
diff changeset
71 hi def link gdmoBraces Function
46763b01cd9a commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents: 10048
diff changeset
72 hi def link gdmoSpecial Special
46763b01cd9a commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents: 10048
diff changeset
73 hi def link gdmoString String
46763b01cd9a commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents: 10048
diff changeset
74 hi def link gdmoCharacter Character
46763b01cd9a commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents: 10048
diff changeset
75 hi def link gdmoSpecialCharacter gdmoSpecial
46763b01cd9a commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents: 10048
diff changeset
76 hi def link gdmoComment Comment
46763b01cd9a commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents: 10048
diff changeset
77 hi def link gdmoLineComment gdmoComment
46763b01cd9a commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents: 10048
diff changeset
78 hi def link gdmoType Type
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
79
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
80
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
81 let b:current_syntax = "gdmo"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
82
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
83 " vim: ts=8