- Add while, for, and do-while loops with break/continue - Implement assignment statements (prevents if(x=10) bugs) - Keep assignment expressions only for for-loop clauses - Fix critical memory management bug (dangling pointers in cleanup) - Add automatic memory cleanup with conservative reference counting - Consolidate documentation into single reference file - Add comprehensive test coverage for all loop types and edge cases - VSCode extension for bob highlighting and snippets
2.7 KiB
2.7 KiB
Bob Language Extension for VS Code
This extension provides syntax highlighting and language support for the Bob programming language in Visual Studio Code and Cursor.
Features
- Syntax Highlighting: Full syntax highlighting for Bob language constructs
- Code Snippets: Useful code snippets for common Bob patterns
- Auto-closing Brackets: Automatic bracket and quote pairing
- Indentation: Smart indentation for Bob code blocks
- Comments: Support for line and block comments
- Folding: Code folding support with region markers
Supported Syntax
Keywords
- Control flow:
if,else,while,for,break,continue,return - Variable declaration:
var - Function declaration:
func - Logical operators:
and,or,not
Built-in Functions
print(),assert(),input(),type(),toString(),toNumber(),time()
Data Types
- Numbers (integers and floats)
- Strings (single and double quoted)
- Booleans (
true,false) - None value (
none)
Operators
- Arithmetic:
+,-,*,/,% - Comparison:
==,!=,<,>,<=,>= - Logical:
&&,||,! - Bitwise:
&,|,^,<<,>>,~ - Compound assignment:
+=,-=,*=,/=,%=,&=,|=,^=,<<=,>>=
Installation
From Source
- Clone this repository
- Run
npm installto install dependencies - Run
npm run compileto build the extension - Press
F5in VS Code to launch the extension in a new window
Manual Installation
- Copy the extension files to your VS Code extensions directory
- Restart VS Code
- Open a
.bobfile to see syntax highlighting
Usage
Code Snippets
Type the following prefixes and press Tab to insert code snippets:
func- Function definitionif- If statementifelse- If-else statementwhile- While loopfor- For loopvar- Variable declarationprint- Print statementassert- Assert statementanon- Anonymous functionreturn- Return statementbreak- Break statementcontinue- Continue statementcomment- Comment blocktest- Test function
File Association
Files with the .bob extension will automatically be recognized as Bob language files.
Example
// This is a comment
var message = "Hello, Bob!";
print(message);
func factorial(n) {
if (n <= 1) {
return 1;
}
return n * factorial(n - 1);
}
var result = factorial(5);
assert(result == 120, "Factorial calculation failed");
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
This extension is licensed under the MIT License.