3 releases

0.1.2 Oct 27, 2021
0.1.1 Apr 11, 2020
0.1.0 Apr 11, 2020

#258 in Text editors

Apache-2.0

110KB
3K SLoC

mojom-lsp

A language server for Mojom IDL. It supports:

  • Syntax check
  • Goto definition

mojom-lsp is tested on Visual Studio Code with vscode-mojom extension and Emacs with eglot.

Installation

mojom-lsp requires stable Rust to build. Run the following command to install mojom-lsp.

# This generates `mojom-lsp-server` binary.
$ cargo install mojom-lsp

Be sure to include the binary to your $PATH.

Editor settings

mojom-lsp assumes that your LSP client sends rootUri in the initialize request. rootUri should be a path that contains the src directory of your Chromium working directory.

Syntax highlighting

mojom-lsp itself doesn't provide syntax highlighting for now. You need to configure your editor to get syntax highlighting.

VSCode

Use vscode-mojom extension.

Vim

The Chromium repository provides basic mojom support.

Emacs

An easy way to get syntax highliting is to use define-generic-mode like below:

;; Mojom
(require 'generic)
(define-generic-mode mojom-mode
  ;; comments
  '("//" ("/*" . "*/"))
  ;; keywords
  '("module" "import" "struct" "union" "enum" "interface")
  ;; font-locks
  nil
  ;; auto-mode
  nil
  ;; hooks
  nil
  "Major mode for mojom")
(add-to-list 'auto-mode-alist '("\\.mojom$" . mojom-mode))

Dependencies

~8.5MB
~148K SLoC