Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'runtime/queries/pascal/highlights.scm')
| -rw-r--r-- | runtime/queries/pascal/highlights.scm | 382 |
1 files changed, 0 insertions, 382 deletions
diff --git a/runtime/queries/pascal/highlights.scm b/runtime/queries/pascal/highlights.scm deleted file mode 100644 index ed689573..00000000 --- a/runtime/queries/pascal/highlights.scm +++ /dev/null @@ -1,382 +0,0 @@ -; -- Identifier type inference - -; VERY QUESTIONABLE: Highlighting of identifiers based on spelling -(exprBinary ((identifier) @constant - (#match? @constant "^[A-Z][A-Z0-9_]+$|^[a-z]{2,3}[A-Z].+$"))) -(exprUnary ((identifier) @constant - (#match? @constant "^[A-Z][A-Z0-9_]+$|^[a-z]{2,3}[A-Z].+$"))) -(assignment rhs: ((identifier) @constant - (#match? @constant "^[A-Z][A-Z0-9_]+$|^[a-z]{2,3}[A-Z].+$"))) -(exprBrackets ((identifier) @constant - (#match? @constant "^[A-Z][A-Z0-9_]+$|^[a-z]{2,3}[A-Z].+$"))) -(exprParens ((identifier) @constant - (#match? @constant "^[A-Z][A-Z0-9_]+$|^[a-z]{2,3}[A-Z].+$"))) -(exprDot rhs: ((identifier) @constant - (#match? @constant "^[A-Z][A-Z0-9_]+$|^[a-z]{2,3}[A-Z].+$"))) -(exprTpl args: ((identifier) @constant - (#match? @constant "^[A-Z][A-Z0-9_]+$|^[a-z]{2,3}[A-Z].+$"))) -(exprArgs ((identifier) @constant - (#match? @constant "^[A-Z][A-Z0-9_]+$|^[a-z]{2,3}[A-Z].+$"))) -(declEnumValue ((identifier) @constant - (#match? @constant "^[A-Z][A-Z0-9_]+$|^[a-z]{2,3}[A-Z].+$"))) -(defaultValue ((identifier) @constant - (#match? @constant "^[A-Z][A-Z0-9_]+$|^[a-z]{2,3}[A-Z].+$"))) - -; -- Break, Continue & Exit -; (Not ideal: ideally, there would be a way to check if these special -; identifiers are shadowed by a local variable) -(statement ((identifier) @keyword.control.return - (#match? @keyword.control.return "^[eE][xX][iI][tT]$"))) -(statement (exprCall entity: ((identifier) @keyword.control.return - (#match? @keyword.control.return "^[eE][xX][iI][tT]$")))) -(statement ((identifier) @keyword.control.repeat - (#match? @keyword.control.repeat "^[bB][rR][eE][aA][kK]$"))) -(statement ((identifier) @keyword.control.repeat - (#match? @keyword.control.repeat "^[cC][oO][nN][tT][iI][nN][uU][eE]$"))) - -; -- Heuristic for procedure/function calls without parentheses -; (If a statement consists only of an identifier, assume it's a procedure) -; (This will still not match all procedure calls, and also may produce false -; positives in rare cases, but only for nonsensical code) - -(statement (exprDot rhs: (exprTpl entity: (identifier) @function))) -(statement (exprTpl entity: (identifier) @function)) -(statement (exprDot rhs: (identifier) @function)) -(statement (identifier) @function) - -; -- Procedure name in calls with parentheses -; (Pascal doesn't require parentheses for procedure calls, so this will not -; detect all calls) - -(inherited) @function - -; foo.bar<t> -(exprCall entity: (exprDot rhs: (exprTpl entity: (identifier) @function))) -; foo.bar -(exprCall entity: (exprDot rhs: (identifier) @function)) -; foobar<t> -(exprCall entity: (exprTpl entity: (identifier) @function)) -; foobar -(exprCall entity: (identifier) @function) - -; -- Fields - -(declSection (declVars (declVar name:(identifier) @variable.other.member))) -(declSection (declField name:(identifier) @variable.other.member)) -(declClass (declField name:(identifier) @variable.other.member)) -(exprDot rhs: (exprDot) @variable.other.member) -(exprDot rhs: (identifier) @variable.other.member) - -(recInitializerField name:(identifier) @variable.other.member) - -; -- Variable & constant declarations -; (This is only questionable because we cannot detect types of identifiers -; declared in other units, so the results will be inconsistent) - -(declVar name: (identifier) @variable) -(declConst name: (identifier) @constant) -(declEnumValue name: (identifier) @constant) - -; -- Constant usage - -[ - (caseLabel) - (label) -] @constant - -(procAttribute (identifier) @constant) -(procExternal (identifier) @constant) - -; -- Type usage - -(typeref) @type - -; -- Exception parameters - -(exceptionHandler variable: (identifier) @variable.parameter) - -; -- Template parameters - -(genericArg type: (typeref) @type) -(genericArg name: (identifier) @variable.parameter) - -(declProc name: (genericDot lhs: (identifier) @type)) -(declType (genericDot (identifier) @type)) - -(genericDot (genericTpl (identifier) @type)) -(genericDot (genericDot (identifier) @type)) - -(genericTpl entity: (genericDot (identifier) @type)) -(genericTpl entity: (identifier) @type) - -; -- Function parameters - -(declArg name: (identifier) @variable.parameter) - -; Treat property declarations like functions - -(declProp name: (identifier) @function) -(declProp getter: (identifier) @variable.other.member) -(declProp setter: (identifier) @variable.other.member) - -; -- Procedure & function declarations - -; foo.bar<t> -(declProc name: (genericDot rhs: (genericTpl entity: (identifier) @function))) -; foo.bar -(declProc name: (genericDot rhs: (identifier) @function)) -; foobar<t> -(declProc name: (genericTpl entity: (identifier) @function)) -; foobar -(declProc name: (identifier) @function) - -; -- Type declaration - -(declType name: (genericTpl entity: (identifier) @type)) -(declType name: (identifier) @type) - -; -- Comments - -(comment) @comment -(pp) @function.macro - -; -- Variables - -(exprBinary (identifier) @variable) -(exprUnary (identifier) @variable) -(assignment (identifier) @variable) -(exprBrackets (identifier) @variable) -(exprParens (identifier) @variable) -(exprDot (identifier) @variable) -(exprTpl (identifier) @variable) -(exprArgs (identifier) @variable) -(defaultValue (identifier) @variable) - -; -- Literals - -(literalNumber) @constant.builtin.numeric -(literalString) @string - -; -- Builtin constants - -[ - (kTrue) - (kFalse) -] @constant.builtin.boolean - -[ - (kNil) -] @constant.builtin - -; -- Punctuation & operators - -[ - (kOr) - (kXor) - (kDiv) - (kMod) - (kAnd) - (kShl) - (kShr) - (kNot) - (kIs) - (kAs) - (kIn) -] @keyword.operator - -[ - (kDot) - (kAdd) - (kSub) - (kMul) - (kFdiv) - (kAssign) - (kAssignAdd) - (kAssignSub) - (kAssignMul) - (kAssignDiv) - (kEq) - (kLt) - (kLte) - (kGt) - (kGte) - (kNeq) - (kAt) - (kHat) -] @operator - -[ - ".." -] @punctuation.special - -[ - ";" - "," - ":" - (kEndDot) -] @punctuation.delimiter - -[ - "(" - ")" - "[" - "]" -] @punctuation.bracket - -; -- Attributes - -(procAttribute (kPublic) @attribute) - -[ - (kDefault) - (kIndex) - (kNodefault) - (kStored) - - (kStatic) - (kVirtual) - (kAbstract) - (kSealed) - (kDynamic) - (kOverride) - (kOverload) - (kReintroduce) - (kInline) - - (kForward) - - (kStdcall) - (kCdecl) - (kCppdecl) - (kPascal) - (kRegister) - (kMwpascal) - (kExternal) - (kName) - (kMessage) - (kDeprecated) - (kExperimental) - (kPlatform) - (kUnimplemented) - (kCvar) - (kExport) - (kFar) - (kNear) - (kSafecall) - (kAssembler) - (kNostackframe) - (kInterrupt) - (kNoreturn) - (kIocheck) - (kLocal) - (kHardfloat) - (kSoftfloat) - (kMs_abi_default) - (kMs_abi_cdecl) - (kSaveregisters) - (kSysv_abi_default) - (kSysv_abi_cdecl) - (kVectorcall) - (kVarargs) - (kWinapi) - (kAlias) - (kDelayed) - - (rttiAttributes) - (procAttribute) - -] @attribute - -; -- Keywords -[ - (kProgram) - (kLibrary) - (kUnit) - (kUses) - - (kBegin) - (kEnd) - (kAsm) - - (kVar) - (kThreadvar) - (kConst) - (kResourcestring) - (kConstref) - (kOut) - (kType) - (kLabel) - (kExports) - - (kAbsolute) - - (kProperty) - (kRead) - (kWrite) - (kImplements) - - (kClass) - (kInterface) - (kObject) - (kRecord) - (kObjcclass) - (kObjccategory) - (kObjcprotocol) - (kArray) - (kFile) - (kString) - (kSet) - (kOf) - (kHelper) - (kPacked) - - (kInherited) - - (kGeneric) - (kSpecialize) - - (kFunction) - (kProcedure) - (kConstructor) - (kDestructor) - (kOperator) - (kReference) - - (kInterface) - (kImplementation) - (kInitialization) - (kFinalization) - - (kPublished) - (kPublic) - (kProtected) - (kPrivate) - (kStrict) - (kRequired) - (kOptional) - - (kTry) - (kExcept) - (kFinally) - (kRaise) - (kOn) - (kCase) - (kWith) - (kGoto) -] @keyword - -[ - (kFor) - (kTo) - (kDownto) - (kDo) - (kWhile) - (kRepeat) - (kUntil) -] @keyword.control.repeat - -[ - (kIf) - (kThen) - (kElse) -] @keyword.control.conditional |