Skip to content

umple/umple.vscode

Repository files navigation

Umple for VS Code

A VS Code extension for the Umple modeling language. Provides IDE features for .ump files.

Features

  • Diagnostics - Real-time error and warning detection via the Umple compiler
  • Go-to-definition - Jump to classes, attributes, state machines, states, and associations
  • Code completion - Context-aware keyword and symbol suggestions
  • Syntax highlighting - TextMate grammar for accurate highlighting
  • Cross-file support - Transitive use statement resolution and cross-file diagnostics
  • Import error reporting - Errors in imported files shown on the use statement line

Requirements

  • Node.js 18+
  • Java 11+ (optional — only needed for diagnostics)

Installation

Install from the VS Code Marketplace (coming soon), or build from source:

git clone https://github.com/umple/umple.vscode.git
cd umple.vscode
npm install      # automatically downloads umple-lsp-server from npm
npm run compile

To package as .vsix:

npx @vscode/vsce package

Configuration

Setting Type Default Description
umple.autoUpdate boolean true Automatically update umplesync.jar on startup

Development

To test local changes to the LSP server:

  1. Clone both repos side by side:
workspace/
├── umple-lsp/       # LSP server monorepo
└── umple.vscode/    # This extension
  1. Build the server:
cd umple-lsp
npm install
npm run compile
  1. Link the local server into the extension:
cd umple.vscode
npm install
npm link ../umple-lsp/packages/server
npm run compile
  1. Press F5 in VS Code to launch the Extension Development Host.

  2. After making changes to the server, recompile and reload:

cd umple-lsp
npm run compile

Then in the dev host: Cmd+Shift+P (or Ctrl+Shift+P) → Developer: Reload Window

Architecture

This extension is a thin client that launches the Umple LSP server. The server handles diagnostics, completion, and go-to-definition.

VS Code Extension (this repo)
  |
  +-- (stdio) --> umple-lsp-server --> umplesync.jar (diagnostics)
                    |
                    +-- tree-sitter (go-to-definition, symbol indexing)

Releases

No releases published

Packages

No packages published

Contributors 7