Mercurial > vim
annotate runtime/syntax/nastran.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 |
rev | line source |
---|---|
7 | 1 " Vim syntax file |
2 " Language: NASTRAN input/DMAP | |
3 " Maintainer: Tom Kowalski <trk@schaefferas.com> | |
4 " Last change: April 27, 2001 | |
5 " Thanks to the authors and maintainers of fortran.vim. | |
6 " Since DMAP shares some traits with fortran, this syntax file | |
7 " is based on the fortran.vim syntax file. | |
8 "---------------------------------------------------------------------- | |
10048
43efa4f5a8ea
commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents:
7
diff
changeset
|
9 " quit when a syntax file was already loaded |
43efa4f5a8ea
commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents:
7
diff
changeset
|
10 if exists("b:current_syntax") |
7 | 11 finish |
12 endif | |
13 " DMAP is not case dependent | |
14 syn case ignore | |
15 " | |
16 "--------------------DMAP SYNTAX--------------------------------------- | |
17 " | |
18 " -------Executive Modules and Statements | |
19 " | |
20 syn keyword nastranDmapexecmod call dbview delete end equiv equivx exit | |
21 syn keyword nastranDmapexecmod file message purge purgex return subdmap | |
22 syn keyword nastranDmapType type | |
23 syn keyword nastranDmapLabel go to goto | |
24 syn keyword nastranDmapRepeat if else elseif endif then | |
25 syn keyword nastranDmapRepeat do while | |
26 syn region nastranDmapString start=+"+ end=+"+ oneline | |
27 syn region nastranDmapString start=+'+ end=+'+ oneline | |
28 " If you don't like initial tabs in dmap (or at all) | |
29 "syn match nastranDmapIniTab "^\t.*$" | |
30 "syn match nastranDmapTab "\t" | |
31 | |
32 " Any integer | |
33 syn match nastranDmapNumber "-\=\<[0-9]\+\>" | |
34 " floating point number, with dot, optional exponent | |
35 syn match nastranDmapFloat "\<[0-9]\+\.[0-9]*\([edED][-+]\=[0-9]\+\)\=\>" | |
36 " floating point number, starting with a dot, optional exponent | |
37 syn match nastranDmapFloat "\.[0-9]\+\([edED][-+]\=[0-9]\+\)\=\>" | |
38 " floating point number, without dot, with exponent | |
39 syn match nastranDmapFloat "\<[0-9]\+[edED][-+]\=[0-9]\+\>" | |
40 | |
41 syn match nastranDmapLogical "\(true\|false\)" | |
42 | |
43 syn match nastranDmapPreCondit "^#define\>" | |
44 syn match nastranDmapPreCondit "^#include\>" | |
45 " | |
46 " -------Comments may be contained in another line. | |
47 " | |
48 syn match nastranDmapComment "^[\$].*$" | |
49 syn match nastranDmapComment "\$.*$" | |
50 syn match nastranDmapComment "^[\$].*$" contained | |
51 syn match nastranDmapComment "\$.*$" contained | |
52 " Treat all past 72nd column as a comment. Do not work with tabs! | |
53 " Breaks down when 72-73rd column is in another match (eg number or keyword) | |
54 syn match nastranDmapComment "^.\{-72}.*$"lc=72 contained | |
55 | |
56 " | |
57 " -------Utility Modules | |
58 " | |
59 syn keyword nastranDmapUtilmod append copy dbc dbdict dbdir dmin drms1 | |
60 syn keyword nastranDmapUtilmod dtiin eltprt ifp ifp1 inputt2 inputt4 lamx | |
61 syn keyword nastranDmapUtilmod matgen matgpr matmod matpch matprn matprt | |
62 syn keyword nastranDmapUtilmod modtrl mtrxin ofp output2 output4 param | |
63 syn keyword nastranDmapUtilmod paraml paramr prtparam pvt scalar | |
64 syn keyword nastranDmapUtilmod seqp setval tabedit tabprt tabpt vec vecplot | |
65 syn keyword nastranDmapUtilmod xsort | |
66 " | |
67 " -------Matrix Modules | |
68 " | |
69 syn keyword nastranDmapMatmod add add5 cead dcmp decomp diagonal fbs merge | |
70 syn keyword nastranDmapMatmod mpyad norm read reigl smpyad solve solvit | |
71 syn keyword nastranDmapMatmod trnsp umerge umerge1 upartn dmiin partn | |
72 syn region nastranDmapMatmod start=+^ *[Dd][Mm][Ii]+ end=+[\/]+ | |
73 " | |
74 " -------Implicit Functions | |
75 " | |
76 syn keyword nastranDmapImplicit abs acos acosh andl asin asinh atan atan2 | |
77 syn keyword nastranDmapImplicit atanh atanh2 char clen clock cmplx concat1 | |
78 syn keyword nastranDmapImplicit concat2 concat3 conjg cos cosh dble diagoff | |
79 syn keyword nastranDmapImplicit diagon dim dlablank dlxblank dprod eqvl exp | |
80 syn keyword nastranDmapImplicit getdiag getsys ichar imag impl index indexstr | |
81 syn keyword nastranDmapImplicit int itol leq lge lgt lle llt lne log log10 | |
82 syn keyword nastranDmapImplicit logx ltoi mcgetsys mcputsys max min mod neqvl | |
83 syn keyword nastranDmapImplicit nint noop normal notl numeq numge numgt numle | |
84 syn keyword nastranDmapImplicit numlt numne orl pi precison putdiag putsys | |
85 syn keyword nastranDmapImplicit rand rdiagon real rtimtogo setcore sign sin | |
86 syn keyword nastranDmapImplicit sinh sngl sprod sqrt substrin tan tanh | |
87 syn keyword nastranDmapImplicit timetogo wlen xorl | |
88 " | |
89 " | |
90 "--------------------INPUT FILE SYNTAX--------------------------------------- | |
91 " | |
92 " | |
93 " -------Nastran Statement | |
94 " | |
95 syn keyword nastranNastranCard nastran | |
96 " | |
97 " -------The File Management Section (FMS) | |
98 " | |
99 syn region nastranFMSCard start=+^ *[Aa][Cc][Qq][Uu][Ii]+ end=+$+ oneline | |
100 syn region nastranFMSCard start=+^ *[Aa][Ss][Ss][Ii][Gg]+ end=+$+ oneline | |
101 syn region nastranFMSCard start=+^ *[Cc][oO][Nn][Nn][Ee]+ end=+$+ oneline | |
102 syn region nastranFMSCard start=+^ *[Dd][Bb][Cc][Ll][Ee]+ end=+$+ oneline | |
103 syn region nastranFMSCard start=+^ *[Dd][Bb][Dd][Ii][Cc]+ end=+$+ oneline | |
104 syn region nastranFMSCard start=+^ *[Dd][Bb][Dd][Ii][Rr]+ end=+$+ oneline | |
105 syn region nastranFMSCard start=+^ *[Dd][Bb][Ff][Ii][Xx]+ end=+$+ oneline | |
106 syn region nastranFMSCard start=+^ *[Dd][Bb][Ll][Oo][Aa]+ end=+$+ oneline | |
107 syn region nastranFMSCard start=+^ *[Dd][Bb][Ll][Oo][Cc]+ end=+$+ oneline | |
108 syn region nastranFMSCard start=+^ *[Dd][Bb][Ss][Ee][Tt]+ end=+$+ oneline | |
109 syn region nastranFMSCard start=+^ *[Dd][Bb][Uu][Nn][Ll]+ end=+$+ oneline | |
110 syn region nastranFMSCard start=+^ *[Dd][Bb][Uu][Pp][Dd]+ end=+$+ oneline | |
111 syn region nastranFMSCard start=+^ *[Dd][Ee][Ff][Ii][Nn]+ end=+$+ oneline | |
112 syn region nastranFMSCard start=+^ *[Ee][Nn][Dd][Jj][Oo]+ end=+$+ oneline | |
113 syn region nastranFMSCard start=+^ *[Ee][Xx][Pp][Aa][Nn]+ end=+$+ oneline | |
114 syn region nastranFMSCard start=+^ *[Ii][Nn][Cc][Ll][Uu]+ end=+$+ oneline | |
115 syn region nastranFMSCard start=+^ *[Ii][Nn][Ii][Tt]+ end=+$+ oneline | |
116 syn region nastranFMSCard start=+^ *[Pp][Rr][Oo][Jj]+ end=+$+ oneline | |
117 syn region nastranFMSCard start=+^ *[Rr][Ee][Ss][Tt]+ end=+$+ oneline | |
118 syn match nastranDmapUtilmod "^ *[Rr][Ee][Ss][Tt][Aa].*,.*," contains=nastranDmapComment | |
119 " | |
120 " -------Executive Control Section | |
121 " | |
122 syn region nastranECSCard start=+^ *[Aa][Ll][Tt][Ee][Rr]+ end=+$+ oneline | |
123 syn region nastranECSCard start=+^ *[Aa][Pp][Pp]+ end=+$+ oneline | |
124 syn region nastranECSCard start=+^ *[Cc][Oo][Mm][Pp][Ii]+ end=+$+ oneline | |
125 syn region nastranECSCard start=+^ *[Dd][Ii][Aa][Gg] + end=+$+ oneline | |
126 syn region nastranECSCard start=+^ *[Ee][Cc][Hh][Oo]+ end=+$+ oneline | |
127 syn region nastranECSCard start=+^ *[Ee][Nn][Dd][Aa][Ll]+ end=+$+ oneline | |
128 syn region nastranECSCard start=+^ *[Ii][Dd]+ end=+$+ oneline | |
129 syn region nastranECSCard start=+^ *[Ii][Nn][Cc][Ll][Uu]+ end=+$+ oneline | |
130 syn region nastranECSCard start=+^ *[Ll][Ii][Nn][Kk]+ end=+$+ oneline | |
131 syn region nastranECSCard start=+^ *[Mm][Aa][Ll][Tt][Ee]+ end=+$+ oneline | |
132 syn region nastranECSCard start=+^ *[Ss][Oo][Ll] + end=+$+ oneline | |
133 syn region nastranECSCard start=+^ *[Tt][Ii][Mm][Ee]+ end=+$+ oneline | |
134 " | |
135 " -------Delimiters | |
136 " | |
137 syn match nastranDelimiter "[Cc][Ee][Nn][Dd]" contained | |
138 syn match nastranDelimiter "[Bb][Ee][Gg][Ii][Nn]" contained | |
139 syn match nastranDelimiter " *[Bb][Uu][Ll][Kk]" contained | |
140 syn match nastranDelimiter "[Ee][Nn][Dd] *[dD][Aa][Tt][Aa]" contained | |
141 " | |
142 " -------Case Control section | |
143 " | |
144 syn region nastranCC start=+^ *[Cc][Ee][Nn][Dd]+ end=+^ *[Bb][Ee][Gg][Ii][Nn]+ contains=nastranDelimiter,nastranBulkData,nastranDmapComment | |
145 | |
146 " | |
147 " -------Bulk Data section | |
148 " | |
149 syn region nastranBulkData start=+ *[Bb][Uu][Ll][Kk] *$+ end=+^ [Ee][Nn][Dd] *[Dd]+ contains=nastranDelimiter,nastranDmapComment | |
150 " | |
151 " -------The following cards may appear in multiple sections of the file | |
152 " | |
153 syn keyword nastranUtilCard ECHOON ECHOOFF INCLUDE PARAM | |
154 | |
155 | |
10048
43efa4f5a8ea
commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents:
7
diff
changeset
|
156 " The default methods for highlighting. Can be overridden later |
10051
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
157 hi def link nastranDmapexecmod Statement |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
158 hi def link nastranDmapType Type |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
159 hi def link nastranDmapPreCondit Error |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
160 hi def link nastranDmapUtilmod PreProc |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
161 hi def link nastranDmapMatmod nastranDmapUtilmod |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
162 hi def link nastranDmapString String |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
163 hi def link nastranDmapNumber Constant |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
164 hi def link nastranDmapFloat nastranDmapNumber |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
165 hi def link nastranDmapInitTab nastranDmapNumber |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
166 hi def link nastranDmapTab nastranDmapNumber |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
167 hi def link nastranDmapLogical nastranDmapExecmod |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
168 hi def link nastranDmapImplicit Identifier |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
169 hi def link nastranDmapComment Comment |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
170 hi def link nastranDmapRepeat nastranDmapexecmod |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
171 hi def link nastranNastranCard nastranDmapPreCondit |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
172 hi def link nastranECSCard nastranDmapUtilmod |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
173 hi def link nastranFMSCard nastranNastranCard |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
174 hi def link nastranCC nastranDmapexecmod |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
175 hi def link nastranDelimiter Special |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
176 hi def link nastranBulkData nastranDmapType |
46763b01cd9a
commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents:
10048
diff
changeset
|
177 hi def link nastranUtilCard nastranDmapexecmod |
7 | 178 |
179 let b:current_syntax = "nastran" | |
180 | |
181 "EOF vim: ts=8 noet tw=120 sw=8 sts=0 |