|
| 1 | +fileTypes: [gsm, gdl] |
| 2 | +name: GDL |
| 3 | +patterns: |
| 4 | +- {match: '(?i)\b(\!NOCONTOUR|BAS|BOX|CONT|FILLA|FILTER|GDLBIN|HIP_ROOFS|(LIN|NOD)(E)?|ORIGO|PARS|PAUSE|PLOTMAKER|PLOTTER|RECT_|SFLINE|TET(RA)?|TRI|UI_(CANCEL|OK)|VOCA|WALL_)\b', |
| 5 | + name: invalid.deprecated.gdl} |
| 6 | +- {begin: '!', end: $, name: comment.line.gdl} |
| 7 | +- {match: '("(?:[^"\\]|\\.)*"|''(?:[^''\\]|\\.)*'')', name: string.gdl} |
| 8 | +- {match: '(?i)(\b[0-9]*:)(?=$|\s)', name: entity.name.function.gdl} |
| 9 | +- {match: '(?i)(\+|\-|\^|\*{1,2}|\/|\=|<|>|<\=|>\=|<>|\#)|(?<=^|\s)(MOD|%|AND|&|OR|\||EXOR|\@|NOT)(?=$|\s|\()', |
| 10 | + name: keyword.operator.gdl} |
| 11 | +- {match: '(?i)(?<=^|\s)(FOR|TO|STEP|NEXT|DO|WHILE|ENDWHILE|REPEAT|UNTIL|IF|THEN|ELSE|ENDIF|GOTO|GOSUB|RETURN|END|EXIT|BREAKPOINT)(?=$|\s)', |
| 12 | + name: keyword.control.flow.gdl} |
| 13 | +- {match: '(?i)(?<=^|\s)(ADD[2XYZ]?|ROT[2XYZ]?|MUL[2XYZ]?|XFORM|DEL(\sTOP)?)(?=$|\s|\+|\-|\^|\*{1,2}|\/|\=|<|>|<\=|>\=|<>|\#)', |
| 14 | + name: keyword.gdl.transform} |
| 15 | +- {match: '(?i)(?<=^|\s)(ABS|CEIL|INT|FRA|ROUND_INT|SGN|ACS|ASN|ATN|COS|SIN|TAN|PI|EXP|LGT|LOG|SQR|MAX|MIN|RND|STR(\{2\})?|SPLIT|STW|STRLEN|STRSTR|STRSUB|VARDIM[12]|DIM|BITTEST|BITSET|REQ((UEST)(\{2\})?)?|IND|NTR|VARTYPE)(?=$|\s|\()', |
| 16 | + name: keyword.other.special-method.gdl.functions} |
| 17 | +- {match: '(?i)(?<=^|\s)((LINE|RECT|ARC|CIRCLE|WALLINE|WALLARC)2|SPLINE2[A]?|(PICTURE|WALLHOLE|WALLBLOCK)2(\{2\})?|POLY2(_?(A|B(\{[2-5]\})?)?))(?=$|\s)', |
| 18 | + name: keyword.gdl.shape.2D} |
| 19 | +- {match: '(?i)(?<=^|\s)(?<=^|\s)((TEXT|RICHTEXT)2)(?=$|\s)', name: keyword.gdl.text.2D.text} |
| 20 | +- {match: '(?i)(?<=^|\s)(BLOCK|CYLIND|CONE|SPHERE|ELLIPS|ELBOW|ARMC|ARME)(?=$|\s)', |
| 21 | + name: keyword.gdl.shape.3D.basic} |
| 22 | +- {match: '(?i)(?<=^|\s)((PLANE|POLY)(_?)|ARC|CIRCLE|LIN_|RECT)(?=$|\s)', name: keyword.gdl.shape.3D.planar} |
| 23 | +- {match: '(?i)(?<=^|\s)(SLAB(_?)|CSLAB_|CROOF_(\{[23]\})?|[CB]WALL_|XWALL_(\{[23]\})?|BEAM|MESH|POLYROOF(\{[23]\})?)(?=$|\s)', |
| 24 | + name: keyword.gdl.shape.3D.complex} |
| 25 | +- {match: '(?i)(?<=^|\s)(BASE|BODY|COOR|EDGE|PGON|PIPG|TEVE|VECT|VERT)(?=$|\s)', name: keyword.gdl.shape.3D.primitive} |
| 26 | +- {match: '(?i)(?<=^|\s)(PRISM_?|[BFH]PRISM_|[CS]PRISM_(\{[23]\})?)(?=$|\s)', name: keyword.gdl.shape.3D.prisms} |
| 27 | +- {match: '(?i)(?<=^|\s)(PYRAMID|RULED(\{2\})?|EXTRUDE|SWEEP|TUBE[A]?|MASS(\{2\})?|COONS|REVOLVE(\{[2-5]\})?|(EXTRUDED|REVOLVED|RULED)SHELL(\{2\})?|REVOLVEDSHELLANGULAR(\{2\})?)(?=$|\s)', |
| 28 | + name: keyword.gdl.shape.3D.poly} |
| 29 | +- {match: '(?i)(?<=^|\s)(CUT(PLANE(\{[23]\})?|POLY[A]?|FORM|SHAPE)|WALL(HOLE|NICHE))(?=$|\s)', |
| 30 | + name: keyword.gdl.shape.3D.cut} |
| 31 | +- {match: '(?i)(?<=^|\s)((ADD|ISECT|SUB|PLACE|KILL)?(GROUP)|SWEEPGROUP(\{2\})?|ISECTLINES|CREATE_GROUP_MAT)(?=$|\s)', |
| 32 | + name: keyword.gdl.shape.3D.seo} |
| 33 | +- {match: '(?i)(?<=^|\s)(TEXT|RICHTEXT)(?=$|\s)', name: keyword.gdl.shape.3D.text} |
| 34 | +- {match: '(?i)(?<=^|\s)(LIGHT|PICTURE|BINARY)(?=$|\s)', name: keyword.gdl.shape.3D.other} |
| 35 | +- {match: '(?i)(?<=^|\s)(FRAGMENT[2]?|PROJECT2(\{[2-3]\})?|DRAWING(2|3(\{[2-3]\})?))(?=$|\s)', |
| 36 | + name: keyword.gdl.symbol} |
| 37 | +- {match: '(?i)(?<=^|\s)(HOTSPOT[2]?|HOTLINE[2]?|HOTARC[2]?)(?=$|\s)', name: keyword.gdl.hotedits} |
| 38 | +- {match: '(?i)(?<=^|\s)(DEFINE|SET|BASED_ON)(?=\s)', name: storage.type.function.gdl} |
| 39 | +- {match: '(?i)\b(PEN|RESOL|RADIUS|TOLER|MODEL|SHADOW|DRAWINDEX|LINE_(TYPE|PROPERTY)|SYMBOL_(LINE|FILL)|FILL[A]?|(EMPTY|TRANSLUCENT|IMAGE|(LINEAR|RADIAL)_GRADIENT)_FILL|FILLTYPES_MASK|MATERIAL|TEXTURE|STYLE(\{2\})?|PARAGRAPH|TEXTBLOCK|ADDITIONAL_DATA|SECT_(FILL|ATTRS))(?=$|\s|\+|\-|\^|\*{1,2}|\/|\=|<|>|<\=|>\=|<>|\#)', |
| 40 | + name: support.type.gdl.attribute} |
| 41 | +- {match: '(?i)\b(SOLID|SURFACE|WIRE)\b', name: support.other.variable.gdl.model} |
| 42 | +- {match: '(?i)(?<=\s|,)(ON|OFF|AUTO)(?=$|\s|,)', name: support.other.variable.gdl.shadow} |
| 43 | +- {match: '(?i)(?<=^|\s)(VALUES(\{2\})?|PARAMETERS|LOCK|HIDEPARAMETER|PARVALUE_DESCRIPTION)(?=$|\s)', |
| 44 | + name: keyword.gdl.nongeo.parameters} |
| 45 | +- {match: '(?i)(?<=^|\s)(COMPONENT|DESCRIPTOR|BINARYPROP|DATABASE_SET|POSITION|REF_(COMPONENT|DESCRIPTOR)|(SURFACE|VOLUME)3D|DRAWING[2]?)(?=$|\s)', |
| 46 | + name: keyword.gdl.nongeo.properties} |
| 47 | +- {match: '(?i)(?<=^|\s)(UI_(DIALOG|(CURRENT_)?PAGE|BUTTON|SEPARATOR|GROUPBOX|PICT|STYLE|OUTFIELD|INFIELD(\{[2-3]\})?|RADIOBUTTON|TOOLTIP|LISTFIELD|LISTITEM(\{2\})?|COLORPICKER(\{2\})?|SLIDER(\{2\})?))(?=$|\s)', |
| 48 | + name: keyword.gdl.nongeo.ui} |
| 49 | +- {match: '(?!)(?<=^|\s)(MIGRATIONWARNING|NEWPARAMETER|SETMIGRATIONGUID|DELETED_PAR_VALUE|STORED_PAR_VALUE)', |
| 50 | + name: keyword.gdl.nongeo.migration} |
| 51 | +- {match: '(?i)(?<=^|\s)(PRINT|OPEN|INPUT|OUTPUT|CLOSE|CALL|FILE_DEPENDENCE)(?=$|\s|\()', |
| 52 | + name: keyword.gdl.extern} |
| 53 | +- {match: '(?i)(?<=^|\s|\+|\-|\^|\*|\*\*|\/|\=|<|>|<\=|>\=|<>|\#)(APPLICATION_QUERY|LIBRARYGLOBAL)(?=$|\s|\+|\-|\^|\*{1,2}|\/|\=|<|>|<\=|>\=|<>|\#|\()', |
| 54 | + name: keyword.gdl.request} |
| 55 | +- {match: '(?i)(?<=^|\s|\+|\-|\^|\*|\*\*|\/|\=|<|>|<\=|>\=|<>|\#)(GLOB_(SCRIPT_TYPE|CONTEXT|SCALE|NORTH_DIR|DRAWING_BGD_PEN|MODPAR_NAME|WORLD_ORIGO_OFFSET_[XY]|FRAME_NR|(FIRST|LAST)_FRAME|(EYE|TARG)POS_[XYZ]|SUN_A(ZIMUTH|LTITUDE)|UI_BUTTON_ID|CUTPLANES_INFO|STRUCTURE_DISPLAY))(?=$|\s|\+|\-|\^|\*{1,2}|\/|\=|<|>|<\=|>\=|<>|\#)', |
| 56 | + name: keyword.gdl.globals.general} |
| 57 | +- {match: '(?i)(?<=^|\s|\+|\-|\^|\*|\*\*|\/|\=|<|>|<\=|>\=|<>|\#)(GLOB_([HC]STORY_(ELEV|HEIGHT)|CH_STORY_DIST))(?=$|\s|\+|\-|\^|\*{1,2}|\/|\=|<|>|<\=|>\=|<>|\#)', |
| 58 | + name: keyword.gdl.globals.story} |
| 59 | +- {match: '(?i)(?<=^|\s|\+|\-|\^|\*|\*\*|\/|\=|<|>|<\=|>\=|<>|\#)(GLOB_(LAYER|ID|INTGUID|ELEVATION|ELEM_TYPE))(?=$|\s|\+|\-|\^|\*{1,2}|\/|\=|<|>|<\=|>\=|<>|\#)', |
| 60 | + name: keyword.gdl.globals.elementparameters} |
| 61 | +- {match: '(?i)(?<=^|\s|\+|\-|\^|\*|\*\*|\/|\=|<|>|<\=|>\=|<>|\#)(SYMB_((LINETYPE|FILL(_PEN)?)|(FBGD|SECT|VIEW)+_PEN|MAT|POS_[XYZ]|ROTANGLE|MIRRORED|[ABZ]+_SIZE))(?=$|\s|\+|\-|\^|\*{1,2}|\/|\=|<|>|<\=|>\=|<>|\#)', |
| 62 | + name: keyword.gdl.globals.objectparameters} |
| 63 | +- {match: '(?i)(?<=^|\s|\+|\-|\^|\*|\*\*|\/|\=|<|>|<\=|>\=|<>|\#)(WIDO_(REVEAL_(ON|SIDE)|SILL(_HEIGHT)?|(R|OPR)SIDE_SILL_HEIGHT|(RIGHT|LEFT)_JAMB|(THRES|HEAD)_DEPTH|((R|OPR)SIDE_)?HEAD_HEIGHT|(FRAME|SUBFL)_THICKNESS|POSITION|ORIENTATION|MARKER_TXT|PREFIX|CUSTOM_MARKER|ORIG_DIST|PWALL_INSET|(N_)?(R|OPR)SIDE_(WIDTH|HEIGHT|SURF)|VOLUME|GROSS_(SURFACE|VOLUME)))(?=$|\s|\+|\-|\^|\*{1,2}|\/|\=|<|>|<\=|>\=|<>|\#)', |
| 64 | + name: keyword.gdl.globals.window} |
| 65 | +- {match: '(?i)(?<=^|\s|\+|\-|\^|\*|\*\*|\/|\=|<|>|<\=|>\=|<>|\#)(LABEL_(POSITION|CUSTOM_ARROW|ARROW_PEN|FONT_(NAME|STYLE)|TEXT_(SIZE|PEN|ALIGN|LEADING|WIDTH_FACT)|FRAME_ON|ANCHOR_POS|ROTANGLE|CHARSPACE_FACT))(?=$|\s|\+|\-|\^|\*{1,2}|\/|\=|<|>|<\=|>\=|<>|\#)', |
| 66 | + name: keyword.gdl.globals.label} |
| 67 | +- {match: '(?i)(?<=^|\s|\+|\-|\^|\*|\*\*|\/|\=|<|>|<\=|>\=|<>|\#)(WALL_(RESOL|((START|END)_)?THICKNESS|INCL|((MIN|MAX)_)?HEIGHT|MAT_(A|B|EDGE)|LINETYPE|FILL(_PEN)?|COMPS_NAME|SKINS_(PARAMS|NUMBER)|(SECT|VIEW|FBGD)_PEN|DIRECTION|POSITION|(LENGTH|(GROSS_)?SURFACE)_[AB]|CENTER_LENGTH|AREA|PERIMETER|EDGE_SURF|(GROSS_)?VOLUME|(DOORS|WINDS|HOLES|COLUMNS)_NR|(DOORS|WINDS)_SURF|HOLES_(SURF(_[AB])?|VOLUME)|(WINDS|DOORS)_WID))(?=$|\s|\+|\-|\^|\*{1,2}|\/|\=|<|>|<\=|>\=|<>|\#)', |
| 68 | + name: keyword.gdl.globals.wall} |
| 69 | +- {match: '(?i)(?<=^|\s|\+|\-|\^|\*|\*\*|\/|\=|<|>|<\=|>\=|<>|\#)(COLU_(CORE(_(X|Y|FILL(_PEN)?|FBGD_PEN|((GROSS|TOP|BOT)_)?SURF|(GROSS_)?VOL|GROSS_TOPBOT_SURF))?|(VENEER_(FILL(_PEN)?|FBGD_PEN|WIDTH|SURF|VOL|(TOP|BOT)_SURF|GROSS_((TOPBOT_)?SURF|VOL)))|((MIN|MAX)_)?HEIGHT|DIM[12]|MAT|LINETYPE|(SECT|VIEW)_PEN|PERIMETER|AREA|(GROSS_)?VOLUME))(?=$|\s|\+|\-|\^|\*{1,2}|\/|\=|<|>|<\=|>\=|<>|\#)', |
| 70 | + name: keyword.gdl.globals.column} |
| 71 | +- {match: '(?i)(?<=^|\s|\+|\-|\^|\*|\*\*|\/|\=|<|>|<\=|>\=|<>|\#)(BEAM_(THICKNESS|HEIGHT|REFLINE_OFFSET|PRIORITY|MAT_(RIGHT|LEFT|TOP|BOTTOM|END)|(OUTLINE|AXES)_LINETYPE|FILL(_PEN)?|(SECT|FBGD)_PEN|DIRECTION|POSITION|LENGTH_(RIGHT|LEFT)|(RIGHT|LEFT|TOP|BOTTOM|END)_SURF|VOLUME|HOLE(S_(NR|SURF|VOLUME)|_EDGE_SURF)))(?=$|\s|\+|\-|\^|\*{1,2}|\/|\=|<|>|<\=|>\=|<>|\#)', |
| 72 | + name: keyword.gdl.globals.beam} |
| 73 | +- {match: '(?i)(?<=^|\s|\+|\-|\^|\*|\*\*|\/|\=|<|>|<\=|>\=|<>|\#)(SLAB_(THICKNESS|MAT_(TOP|EDGE|BOTT)|LINETYPE|FILL(_PEN)?|(FBGD|SECT|VIEW)+_PEN|COMPS_NAME|SKINS_(NUMBER|PARAMS)|(GROSS_)?(TOP|BOT|EDGE)_SURF|PERIMETER|(GROSS_)?VOLUME|SEGMENTS_NR|HOLES_(NR|AREA|PRM)))(?=$|\s|\+|\-|\^|\*{1,2}|\/|\=|<|>|<\=|>\=|<>|\#)', |
| 74 | + name: keyword.gdl.globals.slab} |
| 75 | +- {match: '(?i)(?<=^|\s|\+|\-|\^|\*|\*\*|\/|\=|<|>|<\=|>\=|<>|\#)(ROOF_(THICKNESS|ANGLE|MAT_(TOP|EDGE|BOTT)|LINETYPE|FILL(_PEN)?|(FBGD|SECT|VIEW)+_PEN|COMPS_NAME|SKINS_(NUMBER|PARAMS)|(GROSS_)?(TOP|BOTTOM|EDGE)_SURF|PERIMETER|(GROSS_)?VOLUME|SEGMENTS_NR|HOLES_(NR|AREA|PRM)))(?=$|\s|\+|\-|\^|\*{1,2}|\/|\=|<|>|<\=|>\=|<>|\#)', |
| 76 | + name: keyword.gdl.globals.roof} |
| 77 | +- {match: '(?i)(?<=^|\s|\+|\-|\^|\*|\*\*|\/|\=|<|>|<\=|>\=|<>|\#)(FILL_(LINETYPE|FILL(_PEN)?|PEN|FBGD_PEN|SURF|PERIMETER|SEGMENT_NR|HOLES_(NR|AREA|PRM)))(?=$|\s|\+|\-|\^|\*{1,2}|\/|\=|<|>|<\=|>\=|<>|\#)', |
| 78 | + name: keyword.gdl.globals.fill} |
| 79 | +- {match: '(?i)(?<=^|\s|\+|\-|\^|\*|\*\*|\/|\=|<|>|<\=|>\=|<>|\#)(MESH_((LINE)?TYPE|BASE_OFFSET|(USEREDGE|TRIEDGE|SECT|VIEW)_PEN|MAT_(TOP|EDGE|BOTT)|FILL(_PEN)?|FBGD_PEN|(TOP|EDGE|BOTTOM)_SURF|PERIMETER|VOLUME|SEGMENTS_NR|HOLES_(NR|AREA|PRM)))(?=$|\s|\+|\-|\^|\*{1,2}|\/|\=|<|>|<\=|>\=|<>|\#)', |
| 80 | + name: keyword.gdl.globals.mesh} |
| 81 | +- {match: '(?i)(?<=^|\s|\+|\-|\^|\*|\*\*|\/|\=|<|>|<\=|>\=|<>|\#)(LIGHT_(ON|RED|GREEN|BLUE|INTENSITY))(?=$|\s|\+|\-|\^|\*{1,2}|\/|\=|<|>|<\=|>\=|<>|\#)', |
| 82 | + name: keyword.gdl.globals.light} |
| 83 | +- {match: '(?i)(?<=^|\s|\+|\-|\^|\*|\*\*|\/|\=|<|>|<\=|>\=|<>|\#)((GLOB_((ISSUE|CHANGE)_SCHEME))|LAYOUT_((REVISION|CHANGE)_HISTORY|CURRENTVERSION_OPEN))(?=$|\s|\+|\-|\^|\*{1,2}|\/|\=|<|>|<\=|>\=|<>|\#)', |
| 84 | + name: keyword.gdl.globals.layout} |
| 85 | +- {match: '(?i)(?<=^|\s|\+|\-|\^|\*|\*\*|\/|\=|<|>|<\=|>\=|<>|\#)(GLOB_USER_([1-9]\b|[1][0-9]|20))(?=$|\s|\+|\-|\^|\*{1,2}|\/|\=|<|>|<\=|>\=|<>|\#)', |
| 86 | + name: keyword.gdl.globals.user} |
| 87 | +- {match: '(?i)(?<=")((BLUE|RED|GREEN)_OF_(PEN|MATERIAL)|GDL_VERSION|MODEL_SIZE|PEN_OF_RGB|PROGRAM|SERIAL_NUMBER|ANCESTRY_INFO|(ANGULAR_(LENGTH_)?|AREA_|RADIAL_|SILL_HEIGHT_)DIMENSION|(ASSOCEL|MATCHING)_PROPERTIES|ASSOCLP_(NAME|PARVALUE)|CALC_(ANGLE|AREA|LENGTH|VOLUME)_UNIT|CLEAN_INTERSECTIONS|CONSTR_FILLS_DISPLAY|CUSTOM_AUTO_LABEL|DATETIME|DOOR_SHOW_DIM|(ELEVATION|LEVEL|LINEAR)_DIMENSION|FONTNAMES_LIST|HEIGHT_OF_STYLE|HOME(_STORY|DB_INFO)|ID_OF_MAIN|INTERNAL_ID|NAME_OF_(FILL|LINE_TYPE|LISTED|MACRO|MAIN|MATERIAL|PLAN|PROGRAM|STYLE)|REFERENCE_DATA_LEVEL|RGB_OF_(MATERIAL|PEN)|STORY(_INFO)?|(STYLE|TEXTBLOCK)_INFO|WINDOW_(DOOR_(DIMENSION|SHOW_DIM|ZONE_RELEV)|SHOW_DIM)|WORKING_(ANGLE|LENGTH)_UNIT|ZONE_(CATEGORY|COLUS_AREA|RELATIONS)|MATERIAL_INFO)(?="|\s)', |
| 88 | + name: keyword.gdl.globals.request} |
| 89 | +- {match: '(?i)(?<=^|\s)([ABCDEFG]|ZZYZX|ac_\w+|ROOM_([a-z]|_)+)(?=$|\s|=)', name: keyword.gdl.optionalparameters} |
| 90 | +- {match: '(?i)(\btrue\b)', name: constant.language.boolean.true.gdl} |
| 91 | +- {match: '(?i)(\bfalse\b)', name: constant.language.boolean.false.gdl} |
| 92 | +scopeName: source.gdl |
| 93 | +uuid: 3e79e12f-e30e-467c-9c74-2e92e2a183cd |
0 commit comments