SQF Highlighter – Extension
Category: Pages with SQF errors
| SQF Highlighter | |
|---|---|
| Description | Highlights and links SQF commands and functions |
| Author | Lou Montana |
| Project Start | 2022-03-08: Project start |
| Release Date |
|
| Version | 0.85b |
This extension highlights and automatically links SQF commands and functions. It also covers SQS (free of charge).
Features
- SQF Syntax support
- SQS Syntax support
- "Copy code to clipboard" button on hover
- #defined constant value on mouse hover
- Options:
- inline for inline code
- notrim to remove the auto trim (lines themselves will always be rtrimmed)
Installation
- Unzip the directory to wiki
/extensions /SQFHighlighter - Add
wfLoadExtension( 'SQFHighlighter' );to LocalSettings.php - There are no settings - the extension creates full path links unless the host is one of the following (then relative links are created):
- community.bistudio.com
- community.bohemia.net
Usage
Using <sqf> tags will auto-generate syntax highlighting and links to the pages.
| SQF Syntax | |
|---|---|
| Code | Result |
<sqf/>
|
-no SQF code provided-
|
<sqf></sqf>
|
-no SQF code provided-
|
<sqf> </sqf>
|
-no SQF code provided-
|
<sqf>hint "It Works!";</sqf>
|
hint "It Works!"; |
This is <sqf inline>hint "It Works!";</sqf> absolutely inline.
|
This is hint "It Works!"; absolutely inline. |
<sqf notrim>
hint "It Works!";
</sqf>
|
hint "It Works!";
|
<sqf>
// your code here
hint "good!";
</sqf>
|
|
<sqf>
#define fadeInDuration 3
waitUntil { not alive player };
hint DEATH_MESSAGE;
cutText ["", "Black", playerRespawnTime];
private _deathTime = time;
Deaths = Deaths + 1;
/*
wait for resurrection
*/
waitUntil { alive player && { preloadCamera getPosATL player } };
sleep 3;
cutText ["Welcome!", "Black in", fadeInDuration];
// after 10s, end the mission
sleep 10;
[] call BIS_fnc_endMission;
</sqf>
|
#define fadeInDuration 3
waitUntil { not alive player };
hint DEATH_MESSAGE;
cutText ["", "Black", playerRespawnTime];
private _deathTime = time;
Deaths = Deaths + 1;
/*
wait for resurrection
*/
waitUntil { alive player && { preloadCamera getPosATL player } };
sleep 3;
cutText ["Welcome!", "Black in", fadeInDuration];
// after 10s, end the mission
sleep 10;
[] call BIS_fnc_endMission; |
| SQS Syntax | |
| Code | Result |
<sqs/>
|
-no SQS code provided-
|
<sqs></sqs>
|
-no SQS code provided-
|
<sqs> </sqs>
|
-no SQS code provided-
|
<sqs>hint "It Works!"</sqs>
|
hint "It Works!"; |
This is <sqs inline>hint "It Works!"</sqs> absolutely inline.
|
This is hint "It Works!" absolutely inline. |
<sqs notrim>
hint "It Works!";
</sqs>
|
hint "It Works!";
|
<sqs>
#loop
@ alive player
; you ok
hint "OK"
~1
@ not alive player
~1
hint "you ded"
; you not ok
goto "loop"
</sqs>
|
|
CSS Classes
All elements are <span> but the parent block that is a <div>.
| Element | CSS class | Overview |
|---|---|---|
| parent block | sqfhighlighter-block | |
| error message | sqfhighlighter-error | -no SQF code provided- -no SQS code provided-
|
| comment | sqfhighlighter-comment | // comment
/*
this is
a multiline
comment
*/ |
| string | sqfhighlighter-string | "string" |
| number | sqfhighlighter-number | 42
-6.9
10e10 |
| operator | sqfhighlighter-operator | |
| keyword (if, then, waitUntil, etc) | sqfhighlighter-keyword | |
| command | sqfhighlighter-command | |
| function | sqfhighlighter-function | |
| external function | sqfhighlighter-function-ext | // not just considering BIS_ or BIN_
BIS_fnc_unknownFunction
TAG_fnc_spawnGroup |
| local variable | sqfhighlighter-localvar | _localVar |
| global variable | sqfhighlighter-globalvar | |
| macro | sqfhighlighter-macro | #define myVar 1
#if
#endif |
| constant (#defined value) | sqfhighlighter-const | // anything #defined only
#define testVar 1
testVar;
otherVar;
MY_CONSTANT; |
| array start ([) | sqfhighlighter-arraystart | [... |
| array end (]) | sqfhighlighter-arrayend | ...] |
| code start ({) | sqfhighlighter-codestart | {... |
| code end (}) | sqfhighlighter-codeend | ...} |
| parenthese start ({) | sqfhighlighter-parenthesestart | (... |
| parenthese end (}) | sqfhighlighter-parentheseend | ...) |
Known Issues
| Version | Issue | Report Date | Fix Date |
|---|---|---|---|
| v1 | comment blocks still highlight words as global variables for now | 2022-03-15 | 2022-03-17 |
| #if are considered as keywords | 2022-03-15 | 2022-03-17 | |
| single-quote strings have issues with other formatting between quotes | 2022-03-15 | w/ v2 | |
| negative numbers should see the minus sign coloured as well in the end, they should not |
2022-03-15 | 2022-03-17 | |
| numbers in variables are highlighted as numbers (e.g unit1) | 2022-03-22 | w/ v2 | |
| v2 | preprocessor instructions are not considered if not at the very beginning of the line (and the parsing of the whole line may be wrong) | 2022-07-11 | 2022-07-12 |