Commit Graph

115 Commits

Author SHA1 Message Date
Cohee
fa9ae4c979 Specify that flushvar supports closures 2024-06-23 18:28:22 +03:00
Wolfsblvt
48077d200b More slash command enums (nearly done) 2024-06-21 20:04:55 +02:00
Wolfsblvt
461b1a9d87 Even more enum refactorings (not done yet)
- Add common enum icons
- enum def for existing enum types, with color description
2024-06-20 20:33:45 +02:00
Wolfsblvt
6f7ef25369 Rework slash command enum values pt.2
- Fix jsconfig module resolution for imports in frontend scripts
- Add file with common slash command enum values
2024-06-17 03:30:52 +02:00
Len
5cb319771d
Parser followup (#2377)
* set pipe to empty string on empty closure

* fix missing parser flags and scope

* add closure serializing

* add enum provider function to slash command arguments

* add enum providers for /bg, /ask, and /go

* fix index out of bounds returning undefined

* keep whitespace as is in mixed unnamed args (string+closure)

* add _hasUnnamedArgument to named arguments dictionary

* allow /var key=x retrieval

* add enum provider to /tag-add

* fix typo (case)

* add option to make enum matching optional

* add executor to enum provider

* change /tag-add enum provider to only show tags not already assigned

* add enum provider to /tag-remove

* fix name enum provider excluding groups

* remove void from slash command callback return types

* Lint undefined and null pipes

* enable pointer events in chat autocomplete

* fix type hint

---------

Co-authored-by: LenAnderson <Anderson.Len@outlook.com>
Co-authored-by: Cohee <18619528+Cohee1207@users.noreply.github.com>
2024-06-15 00:48:41 +03:00
LenAnderson
46cd47bdfc fix /var behavior 2024-05-22 10:21:49 -04:00
LenAnderson
3bd2edf4d2 move silencing of loud /aborts into execute function when handled 2024-05-19 07:34:09 -04:00
LenAnderson
4f5813a6ce fix /if subcommand strings 2024-05-19 06:40:08 -04:00
LenAnderson
ce4106eb3d fix typehint 2024-05-19 06:27:09 -04:00
LenAnderson
974d27ce26 use root AbortController in /if subcommands 2024-05-19 06:26:16 -04:00
LenAnderson
dfe482b37b fix /abort toast and loop break in /times 2024-05-19 06:25:19 -04:00
LenAnderson
1f18694aa6 fix /abort toasts in /while 2024-05-19 06:25:00 -04:00
LenAnderson
89de668241 fix typehints for while unnamed arg / command 2024-05-19 06:24:32 -04:00
Cohee
48c075fb42 #2268 Fix while command 2024-05-19 12:19:08 +03:00
LenAnderson
87cc28ae28 subcommand and /abort fixes
- use AbortController in /abort instead of execption
- allow quiet abort
- allow loud abort
- allow abort reason
- abort when aborted in subcommand
- break out of loops when aborted inside
- fix parsing of subcommands with multiple commands
2024-05-18 14:48:31 -04:00
Succubyss
9ef3dea884
rule typo fix for /while example 2024-05-14 17:36:10 -05:00
Len
1d75b98393
STscript Parser Rewrite (#1965)
* set isForced to true on input

* make floating auto-complete follow horizontal scrolling

* add callable closure vars

* changes to /let and /var for callable closures

* fix error message

* fix scope for closure arguments

* if should return the pipe result from closures

* use /run to call closures and no arguments on immediate closures

* throw exception from QRs window-function if no match

* when to show autocomplete vs info only

* autocomplete positioning

* autocomplete styling

* add theming to autocomplete (theme, dark, light)

* improve autocomplete show/hide logic and editor selection

* use blur tint color instead of chat tint color and use blur setting

* cleanup and docs

* use scope macros for QR args

* add enter to select autocomplete

* fix no executor found

* cleanup and comment

* fix alias list in help string

* fallback to empty string piped value if null or undefined

* fix typo

* blur textarea on ctrl+enter execute (and refocus after)

* stop executeSlashCommand if parser throws

* move /let and /var callbacks into functions

* switch textarea to monospace when value starts with slash

* add double pipe a pipe breaker

* fix /? slash

* remove some logging

* add "/:name" as shorthand for "/run name" after all

* move shit around

* fix error message

* use testRunShorthandEnd

* use parseQuotedValue and parseValue to determine name for "/:"

QR labels and set names can include spaces

* add some adjustments to make autocomplete work properly

some hint in there about "/:" would still be nice

* add autocomplete style  selector

* only strip quotes from subcommand if they are at both ends

* fix JSDoc

* escaping

* allow open quotes on dry run

* throwing shit at the wall for /: autocomplete

* escapes only for symbols

* clean up autocomplete

* improve performance

* fix scope macros

* remove unescaping of pipes

* fix macros in scope copy

* fix "/? slash"

* don't run parser for getNameAt if text has not changed

* fix options filter

* re-enable blur listener

* restore selection on non-replace select

* fix for escaping first character of value

* add support for {{pipe}} and {{var::}} closures

* add index support to var macro

* add scoped var macro to macro help

* more escape fixes

* reduce autocomplete render debounce

* cleanup

* restore old escape handling and parser flag for strict escaping

* fix "no match" autocomplete message

* add dummy commands for comments and parser flag

* fix type annotations

* somewhat safer macro replacements

* fix autocomplete select on blank / "no match"

* fix cutting off handled part in substitution

* add parser flag REPLACE_GETVAR

Replaces all {{getvar::}} and {{getglobalvar::}} macros with {{var::}}.
Inserts a series of command executors before the command with the macros that:
- save {{pipe}} to a var
- call /getvar or /getglobalvar to get the variable used in the macro
- call /let to save the retrieved variable
- return the saved {{pipe}} value

This helps to avoid double-substitutions when the var values contain text that could be interpreted as macros.

* remove old parser

* fix send on enter when no match

* deal with pipes in quoted values (loose escaping)

* add default parser flags to user settings

* allow quoted values in unnamed argument

* set parser flag without explicit state to "on"

* add click hint on parser error toast

* dirty more detailed cmd defs

* remove name from unnamed arg

* move autocomplete into class and floating with details

* replace jQuery's trigger('input') on #send_textarea with native events because jQuery does not dispatch the native event

* fix ctrl+space

* fix arrow navigation

* add comments

* fix pointer block

* add static fromProps

* fix up dummy commands

* migrate all commands to addCommandObject

* remove commented comment command

* fix alias in details

* add range as argument type

* switch to addCommandObject

* switch to addCommandObject

* fix height

* fix floating details position on left

* re-enable blur event

* use auto width for full details on floating autocomplete

* auto-size floating full details

* fix typo

* re-enable blur listener

* don't prevent enter when selected item is fully typed out

* add autocomplete details tooltips

* add language to slash command examples

* move makeItem into option and command and fix click select

* use autocomplete parts in /? slash

* fix alias formatting

* add language to slash command examples

* fix details position on initial input history

* small screen styles

* replace registerSlashCommand with detailed declarations

* put name on first line

* add missing returns

* fix missing comma

* fix alias display in autocomplete list

* remove args from help string

* move parser settings to its own section

* jsdoc

* hljs stscript lang

* add hljs to autocomplete help examples

* add missing import

* apply autocomplete colors to stscript codeblocks (hljs)

* add fromProps

* cache autocomplete elements

* towards generic autocomplete

* remove unused imports

* fix blanks

* add return types

* re-enable blur

* fix blank check

* Caption messages by id

* add aborting command execution

* fix return type

* fix chat input font reset

* add slash command progress indicator

* add missing return

* mark registerSlashCommand deprecated

* why??

* separate abort logic for commands

* remove parsing of quoted values from unnamed arg

* add adjustable autocomplete width

* revert stop button pulse

* add progress and pause/abort to QR editor

* add resize event on autocomplete width change

* add key= argument to all get vars

* refactoring

* introduce NamedArgumentAsignment

* add TODOs

* refactoring

* record start and end of named arg assignment

* refactoring

* prevent duplicate calls to show

* refactoring

* remove macro ac

* add secondary autocomplete and enum descriptions

* add syntax highlighting to QR editor

* add enum descriptions to /while

* add /let key=... to scope variable names

* add unnamed argument assignment class and unnamed argument splitting

* fix QR editor style

* remove dash before autocomplete help text

* add autocomplete for unnamed enums

* fix remaining dom after holding backslash

* fix for unnamed enums

* fix autocomplete for /parser-flag

* add parser-flag enum help

* fix type annotations

* fix autocomplete result for /:

* add colored autocomplete type icons

* collapse second line autocomplete help if empty

* mark optional named args in autocomplete

* fix when what

* remove duplicate debug buttons

* dispatch input on autocomplete select

* prevent grow from editor syntax layer

* add auto-adjust qr editor caret color

* remove text-shadow from autocomplete

* join value strings in /let and /var

* add /abort syntax highlight

* fix attempting secondary result when there is none

* rename settings headers and split autocomplete / stscript

* add parser flag tooltips

* add tooltips to chat width stops

* fix typo

* return clone of help item

* fix enum string

* don't make optional notice for autocomplete arguments smaller

* avoid scrollbar in chat input

* add rudimentary macro autocomplete

* strip macro from helptext

* finally remove closure delimiters around root

* cleanup

* fix index stuff for removed closure delimiters

* fix type hint

* add child commands to progress indicator

* include sub-separator in macro autocomplete

* remove all mentions of interruptsGeneration and purge

* remove unused imports

* fix syntax highlight with newline at end of input

* cleanup select pointer events

* coalesce onProgress call

* add regex to STscript syntax highlighting

* fix closure end

* fix autocomplete type icon alignment

* adjustments for small screens

* fix removing wrong element

* add missing "at=" arg to /sys, /comment, /sendas

* add font scale setting for autocomplete

* add target=_blank for parser flag links

* fix for searching enums

* remove REGEXP_MODE from hljs
just causes trouble

* fix autocomplete in closures

* fix typo

* fix type hint

* Get rid of scroll bar on load

* Add type hint for /send name argument. Fix 'at' types

* Add 'negative' arg hint to /sd command

* reenable blur event

* Allow /summarize to process any text

* Compact layout of script toggles

* Expand CSS by default

* fix double ranger indicator and adjust to narrow container

* make custom css input fill available vertical space

* reduce scroll lag

* use default cursor on scrollbar

* Clean-up module loading in index.html

* fix tab indent with hljs

---------

Co-authored-by: Cohee <18619528+Cohee1207@users.noreply.github.com>
2024-05-12 22:15:05 +03:00
Cohee
07677584c4 #1781 Fix /len and unescape for non-string arguments 2024-02-03 02:06:49 +02:00
LenAnderson
2cdf928fc7 unescape args before calling callback 2024-01-26 18:58:44 +00:00
Cohee
d5a2f5d9fc Fix /rand returning zero #1728 2024-01-24 14:04:45 +02:00
LenAnderson
d1966d9d5f fix addvar on array using setGlobalVariable 2024-01-16 22:20:46 +00:00
Cohee
2b448233e9
Merge pull request #1545 from LenAnderson/times-slash-command
add /times slash command
2023-12-15 23:39:29 +02:00
Cohee
5bda74b886
Too many lines 2023-12-15 23:39:02 +02:00
LenAnderson
279b731f64 use isFalseBoolean in while and times 2023-12-15 19:48:25 +00:00
LenAnderson
74d0ef5572 make MAX_LOOPS module wide 2023-12-15 19:47:40 +00:00
LenAnderson
6337e0bbd6 add /times slash command 2023-12-15 12:38:26 +00:00
LenAnderson
0e55648336 add rounding (round, ceil, floor) to /rand 2023-12-15 12:16:46 +00:00
LenAnderson
aa1dfa8a5f add /rand slash command 2023-12-14 22:26:24 +00:00
Cohee
e2f886d796 Revert pipe caching 2023-12-08 00:33:27 +02:00
LenAnderson
5a719d635a use isArray instead of instanceof 2023-12-07 18:27:11 +00:00
LenAnderson
7bfed3fca1 /addvar on array to push 2023-12-07 18:12:05 +00:00
LenAnderson
2ee57afe2a add helpString for index in setvar 2023-12-07 16:51:45 +00:00
LenAnderson
db6f782e0f add index to /setvar and /setglobalvar 2023-12-07 16:48:24 +00:00
LenAnderson
afd32d1f4d better handling of array / object vars 2023-12-07 12:56:28 +00:00
Cohee
5e282ac7b4 lint: infix spacing 2023-12-06 22:08:06 +02:00
LenAnderson
ea7720a7de add /len slash command 2023-12-06 19:03:20 +00:00
LenAnderson
a5c595d8ae add list accessors to /getvar and /getglobalvar 2023-12-06 19:03:10 +00:00
valadaptive
a37f874e38 Require single quotes 2023-12-02 13:04:51 -05:00
valadaptive
0a27275772 Enable no-extra-semi lint 2023-12-02 10:32:26 -05:00
Cohee
ca24e550a8 #1420 Revert undefined name variable resolution 2023-12-01 11:51:10 +02:00
Cohee
ebcefe67fc Add value increment variable and macros 2023-12-01 03:02:23 +02:00
Cohee
fe355c5d4f Add MVP set of WI manipulation commands 2023-12-01 01:50:10 +02:00
Cohee
82b7238b39 Add shorthand increment/decrement of variables 2023-11-28 16:00:04 +02:00
Cohee
f3a10eadd5 Trigger concatenation on NaN current value 2023-11-28 01:46:44 +02:00
Cohee
4f9f89c682 Add 3 more math operations 2023-11-28 00:52:50 +02:00
Cohee
4c94bd0aa8 Add math operations 2023-11-27 21:10:50 +02:00
Cohee
3bc91f10ec Fix command aliases 2023-11-26 15:47:11 +02:00
Cohee
9587a704c5 Fix docstrings 2023-11-26 01:52:41 +02:00
Cohee
283d49a6ee Add empty return value to /while 2023-11-26 01:49:37 +02:00
Cohee
0bbaeeaedd Revert to get/set/add order for variable macro 2023-11-25 22:02:40 +02:00
Cohee
0410540066 Process variable macros line by line 2023-11-25 20:52:17 +02:00
Cohee
0d9068f11e Don't replace {{addvar}} macros with the execution result 2023-11-25 20:33:07 +02:00
Cohee
67174c8cf8 Add functions to delete local and global variables 2023-11-25 19:53:00 +02:00
Cohee
d862005c1c Revert "Replace macros in named args of boolean evaluation"
This reverts commit 6894b7ef72.
2023-11-25 18:16:53 +02:00
Cohee
6894b7ef72 Replace macros in named args of boolean evaluation 2023-11-25 18:12:28 +02:00
Cohee
06ade803fa Concatenate strings in /addvar 2023-11-25 17:45:40 +02:00
Cohee
2c8e855385 Resolve variables in /fuzzy 2023-11-24 17:41:49 +02:00
Cohee
adb3badcc1 Add /messages and /setinput commands 2023-11-24 17:12:59 +02:00
Cohee
8e16f28827 Fix variable cast 2023-11-24 14:53:12 +02:00
Cohee
d81371c2b7 Fix variables casting 2023-11-24 14:44:11 +02:00
Cohee
ad8709842b STscript improvements (see below)
Add /while loop
Add escaping of macros in sub-commands
Add /input prompt
2023-11-24 12:49:14 +02:00
Cohee
e593dd4dbd Auto-executable QR 2023-11-24 01:32:02 +02:00
Cohee
c50ed4bf6a STscript improvements (see below)
/abort command, {{pipe}} macro in named args, subcommand batch escaping with backslash, string literals and rules for /if, else clause for /if
2023-11-24 00:18:07 +02:00
Cohee
6d0982e823 Unleash the variables / STscript alpha 2023-11-23 22:36:48 +02:00
Cohee
568f352cf6 [WIP] Placeholder for built-in chat variables 2023-11-06 22:50:32 +02:00