added interactive inputs, better error messages, bugfixes

This commit is contained in:
2025-11-03 20:55:45 +01:00
parent 2336ce0325
commit d289cff56c
17 changed files with 955 additions and 55 deletions

View File

@@ -2,3 +2,15 @@
.vscode-test/**
.gitignore
vsc-extension-quickstart.md
node_modules/**
pnpm-lock.yaml
package-lock.json
*.vsix
.editorconfig
.eslintrc.json
tsconfig.json
**/*.ts
**/*.map
**/tsconfig.json
README-old.md
INSTALL.md

View File

@@ -2,8 +2,29 @@
All notable changes to the "rush" extension will be documented in this file.
Check [Keep a Changelog](http://keepachangelog.com/) for recommendations on how to structure this file.
## [0.0.2] - 2025-11-03
## [Unreleased]
### Added
- Added `test` builtin command syntax highlighting
- Added `input`, `confirm`, `select`, `multiselect` builtin functions
- Shebang lines (`#!/...`) now have distinct purple highlighting
- Initial release
### Changed
- Improved shebang pattern matching to work on any line
- Removed shell command highlighting (git, cargo, npm, etc.) - only Rush builtins are highlighted now
### Fixed
- Comments no longer match shebang lines
- Shebang `#!` punctuation now has the same color as the rest of the line
## [0.0.1] - 2025-11-01
### Added
- Initial release
- Basic syntax highlighting for Rush shell scripts
- Support for `.rush` and `.rsh` file extensions
- Keyword highlighting (if, else, for, parallel, workers)
- Variable highlighting ($VAR syntax)
- Builtin command highlighting (echo, exit, cd, require_root)
- Comment support
- String interpolation support

View File

@@ -2,7 +2,7 @@
"name": "rush",
"displayName": "Rush Shell",
"description": "Syntax highlighting and validation for Rush shell scripts",
"version": "0.0.1",
"version": "0.0.2",
"publisher": "rush-lang",
"repository": {
"type": "git",

View File

@@ -6,10 +6,10 @@
"include": "#shebang"
},
{
"include": "#invalid-syntax"
"include": "#comments"
},
{
"include": "#comments"
"include": "#invalid-syntax"
},
{
"include": "#keywords"
@@ -40,11 +40,11 @@
"shebang": {
"patterns": [
{
"name": "meta.shebang.rush",
"match": "\\A#!.*$",
"name": "meta.directive.shebang.rush",
"match": "^(#!.*$)",
"captures": {
"0": {
"name": "comment.line.shebang.rush"
"1": {
"name": "keyword.other.directive.shebang.rush"
}
}
}
@@ -73,7 +73,7 @@
"patterns": [
{
"name": "comment.line.number-sign.rush",
"match": "#(?!!).*$"
"match": "^[\\t ]*#(?!\\!).*$"
}
]
},
@@ -163,7 +163,7 @@
"patterns": [
{
"name": "support.function.builtin.rush",
"match": "\\b(echo|exit|cd|ls|mkdir|rm|cp|mv|cat|grep|find|chmod|chown)\\b"
"match": "\\b(echo|exit|cd|test|require_root|input|confirm|select|multiselect)\\b"
}
]
}