Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>LimeIDLNew to Visual Studio Code? Get it now.
LimeIDL

LimeIDL

HERE Global B.V.

|
20 installs
| (0) | Free
Syntax highlighting and outline support for LimeIDL files
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

LimeIDL Syntax Highlighting & Outline

This VS Code extension provides comprehensive syntax highlighting and outline support for LimeIDL files (.lime extension). LimeIDL is the input language for Gluecodium, a tool for generating language bindings across multiple programming languages.

Features

Outline & Navigation Support

  • Document Symbol Provider: Full outline sidebar support powered by ANTLR grammar parser
  • Hierarchical Symbol Tree: Organized view of packages, classes, interfaces, structs, enums, and their members
  • Smart Navigation: Click-to-navigate with precise symbol location detection
  • Accurate Parsing: Built on the official LimeIDL ANTLR grammar for maximum accuracy and reliability
  • Comprehensive Symbol Recognition: All major LimeIDL constructs including:
    • Packages, imports, and type aliases
    • Classes (with open modifier), interfaces (with narrow modifier), structs, and enums
    • Class members: constructors, methods, properties, fields, and constants
    • Exception declarations and lambda expressions
    • Support for escaped identifiers (backtick-wrapped names)

Complete Language Support

  • Full ANTLR Grammar Coverage: Syntax highlighting aligned with the complete ANTLR grammar definition
  • All Keywords: Complete support for all language keywords including:
    • Control: package, import, throws
    • Declarations: class, interface, struct, enum, exception, typealias, lambda, fun, constructor, property, const, external, field, get, set
    • Modifiers: static, open, narrow

Advanced Type System

  • Built-in Types: All primitive and system types with proper highlighting:
    • Numeric: Byte, Short, Int, Long, UByte, UShort, UInt, ULong, Float, Double
    • Other: Boolean, String, Blob, Date, Duration, Locale, Void
  • Generic Collections: Enhanced support for List<T>, Set<T>, and Map<K,V> with nested type highlighting
  • Custom Types: User-defined types with proper scoping and references

Rich Literal Support

  • String Literals: Both single-line ("text") and multi-line ("""text""") strings with escape sequences
  • Numeric Literals: Full support for integers, floats, and scientific notation with proper sign handling
  • Duration Literals: Complete support for time units with positive/negative values (+30s, -5min, 1h, 2d)
  • Boolean & Special Values: true, false, null, NaN, Infinity, -Infinity

Advanced Language Constructs

  • Enumerator References: Support for both standard (Enum.VALUE) and positional (Enum(0)) references
  • External Descriptors: Complete external block support with platform-specific syntax highlighting
  • Struct & Collection Initializers:
    • Struct initializers: { field1 = "value", field2 = true }
    • Collection initializers: [1, 2, 3], ["key": "value"]
    • Nested initializer structures
  • Enhanced Attributes: Advanced annotation support with:
    • Named parameters: @Swift(Label = "value")
    • Array parameters: @Attr(values = ["a", "b"])
    • Complex nested structures

Documentation & Comments

  • Documentation Comments: Rich support for // and /* */ documentation comments with:
    • Markdown Formatting: Bold (**text**), italic (_text_), and inline code (`code`)
    • Documentation Tags: @param, @return, @throws, @value, @description, @Placeholder
    • Parameter References: @param[paramName] with proper highlighting
    • Platform-specific Comments: {@Java ...}, {@Swift ...}, {@Cpp ...}, etc.
  • Local Comments: Transient comments (#) for development notes
  • Escape Sequences: Proper handling of escaped markdown characters

Developer Experience

  • Escaped Identifiers: Full Unicode support for backtick-enclosed identifiers
  • Smart Punctuation: Context-aware highlighting for operators, separators, and delimiters
  • Error Prevention: Improved regex patterns for better boundary detection
  • Performance: Optimized parsing for large files

Language Configuration

  • Bracket Matching: Automatic matching for {}, [], ()
  • Auto-closing Pairs: Smart closing for brackets, quotes, and backticks
  • Comment Toggling: Proper support for both documentation and local comments
  • Code Folding: Support for region-based folding

Requirements

  • VS Code 1.101.0 or higher

Extension Settings

This extension does not contribute any VS Code settings.

Known Issues

None currently known. Please report issues on the project repository.

Release Notes

0.2.1 (Latest)

Enhanced Outline Support - ANTLR Parser Integration:

  • IMPROVED: Document Symbol Provider now uses official ANTLR grammar parser instead of regex-based parsing
  • Enhanced Accuracy: More reliable symbol detection and parsing of complex LimeIDL constructs
  • Better Error Handling: Graceful handling of malformed files with improved error recovery
  • Performance: More efficient parsing for large files using compiled grammar
  • Future-proof: Symbol provider automatically supports new language features as grammar evolves

0.2.0

Major feature addition - Outline Support:

  • NEW: Added comprehensive outline sidebar support for LimeIDL files
  • Document Symbol Provider: Navigate through your code structure with VS Code's outline panel
  • Hierarchical View: See classes, interfaces, structs, enums, and their members in organized tree structure
  • Smart Symbol Recognition: Support for all LimeIDL constructs including escaped identifiers
  • Precise Navigation: Click any symbol in outline to jump directly to its definition
  • Enhanced extension description to reflect new outline capabilities

0.1.5

Major update with complete ANTLR grammar coverage:

  • Added support for all missing keywords (get, set, field)
  • Enhanced multi-line string literals and boolean constants
  • Complete external descriptor and initializer support
  • Advanced enumerator references and duration literals
  • Comprehensive documentation and platform-specific comment improvements
  • Full test coverage for all language constructs

0.1.4

  • Bug fixes and stability improvements

0.1.3

  • Added markdown formatting support in documentation comments
  • Enhanced documentation comment syntax highlighting

0.1.2

  • Added proper support for LimeIDL documentation comments
  • Enhanced syntax highlighting to distinguish between documentation and local comments
  • Updated VS Code comment toggling behavior

0.1.1

  • Initial release of LimeIDL syntax highlighting extension

About LimeIDL

LimeIDL is the input language for Gluecodium. The name is a stylized abbreviation where "LIME" stands for "Language-Independent ModEl", and "IDL" stands for "Interface Definition Language". LimeIDL syntax is inspired by modern programming languages like Kotlin and Swift, designed to be compact, easy to read and write.

Example Usage

package com.example.demo

import com.example.utils.Result

// Documentation comment with **bold**, _italic_, and `code` formatting
open class DataProcessor {
    // External descriptor for platform-specific implementations
    external {
        cpp class "DataProcessor"
        java name "DataProcessor"
    }

    // Static property with getters/setters
    static property defaultTimeout: Duration = 30s { get set }

    // Function with complex parameters and attributes
    fun processData(
        @Swift(Label = "with") input: String,
        options: List<String> = [],
        metadata: Map<String, String> = [:]
    ): Result<String> throws ProcessingException

    // Struct with field constructor and initializers
    struct Options {
        enableLogging: Boolean = true
        retryCount: UInt = 3

        field constructor(enableLogging, retryCount)
    }

    // Enum with explicit values
    enum ProcessingMode {
        FAST = 0,
        THOROUGH = 1
    }
}

Contributing

Issues and feature requests are welcome on the project repository. This extension is designed to provide the most comprehensive LimeIDL syntax highlighting experience possible.

License

This extension is licensed under the MIT License.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2025 Microsoft