SQF Highlighter – Extension
Jump to navigation
Jump to search
Lou Montana (talk | contribs) (Add v2) |
Lou Montana (talk | contribs) (Add options documentation) |
||
Line 2: | Line 2: | ||
! colspan="2" style="padding: 1.5em" | SQF Highlighter | ! colspan="2" style="padding: 1.5em" | SQF Highlighter | ||
|- | |- | ||
! | ! Description | ||
| Highlights and links SQF commands and functions | | Highlights and links SQF commands and functions | ||
|- | |- | ||
! | ! Author | ||
| {{User|Lou Montana}} | | {{User|Lou Montana}} | ||
|- | |- | ||
! | ! Version | ||
| 0.85b | | 0.85b | ||
|- | |- | ||
! | ! Release Date | ||
| | | | ||
* 2022-03-12: | * 2022-03-12: "v1" (0.50b), first upload | ||
* 2022-07-11: "v2" (0.85b), new parser | * 2022-07-11: "v2" (0.85b), new parser | ||
|- | |- | ||
! | ! Project Start | ||
| 2022-03-08: Project start | | 2022-03-08: Project start | ||
|} | |} | ||
Line 28: | Line 28: | ||
* "Copy code to clipboard" button on hover | * "Copy code to clipboard" button on hover | ||
* {{hl|#define}}d constant value on mouse hover | * {{hl|#define}}d constant value on mouse hover | ||
* Options: | |||
** {{hl|inline}} for inline code | |||
** {{hl|notrim}} to remove the auto trim (lines themselves will always be rtrimmed) | |||
Line 64: | Line 67: | ||
| <syntaxhighlight lang="html">This is <sqf inline>hint "It Works!";</sqf> absolutely inline.</syntaxhighlight> | | <syntaxhighlight lang="html">This is <sqf inline>hint "It Works!";</sqf> absolutely inline.</syntaxhighlight> | ||
| This is <sqf inline>hint "It Works!";</sqf> absolutely inline. | | This is <sqf inline>hint "It Works!";</sqf> absolutely inline. | ||
|- | |||
| <syntaxhighlight lang="html"><sqf notrim> | |||
hint "It Works!"; | |||
</sqf></syntaxhighlight> | |||
| <sqf notrim> | |||
hint "It Works!"; | |||
</sqf> | |||
|- | |- | ||
| <syntaxhighlight lang="html"> | | <syntaxhighlight lang="html"> | ||
Line 142: | Line 158: | ||
| <syntaxhighlight lang="html">This is <sqs inline>hint "It Works!"</sqs> absolutely inline.</syntaxhighlight> | | <syntaxhighlight lang="html">This is <sqs inline>hint "It Works!"</sqs> absolutely inline.</syntaxhighlight> | ||
| This is <sqs inline>hint "It Works!"</sqs> absolutely inline. | | This is <sqs inline>hint "It Works!"</sqs> absolutely inline. | ||
|- | |||
| <syntaxhighlight lang="html"><sqs notrim> | |||
hint "It Works!"; | |||
</sqs></syntaxhighlight> | |||
| <sqs notrim> | |||
hint "It Works!"; | |||
</sqs> | |||
|- | |- | ||
| <syntaxhighlight lang="html"><sqs> | | <syntaxhighlight lang="html"><sqs> | ||
Line 239: | Line 268: | ||
| macro | | macro | ||
| sqfhighlighter-'''macro''' | | sqfhighlighter-'''macro''' | ||
| <sqf>#define | | <sqf>#define myVar 1 | ||
#if | #if | ||
#endif</sqf> | #endif</sqf> | ||
Line 245: | Line 274: | ||
| constant ({{hl|#define}}d value) | | constant ({{hl|#define}}d value) | ||
| sqfhighlighter-'''const''' | | sqfhighlighter-'''const''' | ||
| <sqf>// anything #defined | | <sqf>// anything #defined only | ||
#define testVar 1 | #define testVar 1 | ||
Line 310: | Line 339: | ||
| preprocessor instructions are not considered if not at the very beginning of the line (and the parsing of the whole line may be wrong) | | 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-11 | ||
| | | 2022-07-12 | ||
|} | |} | ||
{{Feature|informative|Report issues on [https://discord.gg/arma Discord], in the {{hl|#community_wiki}} channel!}} | {{Feature|informative|Report issues on [https://discord.gg/arma Discord], in the {{hl|#community_wiki}} channel!}} |
Revision as of 14:53, 15 July 2022
SQF Highlighter | |
---|---|
Description | Highlights and links SQF commands and functions |
Author | Lou Montana |
Version | 0.85b |
Release Date |
|
Project Start | 2022-03-08: Project start |
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 |