Skip to content

Latest commit

 

History

History
87 lines (67 loc) · 3.53 KB

File metadata and controls

87 lines (67 loc) · 3.53 KB

Project Roadmap

This document outlines the features implemented in the Mojo JetBrains plugin and the future goals for the project.

Important

This roadmap is a work in progress and is subject to change.

Core Foundation

  • Gradle build with IntelliJ Platform Gradle Plugin
  • Plugin manifest (plugin.xml) with LSP, TextMate, and UI extension points
  • Unit tests via BasePlatformTestCase
  • Distributable plugin zip (./gradlew buildPlugin)
  • File icon via IconProvider (16x16 SVG with light/dark variants)
  • Code coverage via Kover with Codecov integration
  • Code formatting via ktlint (make format, make lint)
  • Plugin marketplace listing and publishing workflow

Syntax Highlighting

  • TextMate grammar bundle (MagicPython-derived)
  • TextMateBundleProvider registration with filesystem-based bundle loading
  • TextMate owns the file type: syntax highlighting, bracket matching, and commenting
  • Language configuration: bracket pairs, comment styles (# line, """ block), auto-closing pairs
  • Indent rules for Mojo keywords (fn, struct, trait, def, if, for, while, etc.)
  • Folding markers (# region / # endregion)
  • Semantic token highlighting from LSP (richer than TextMate scopes)
  • Color scheme customization for Mojo-specific tokens

LSP Integration

  • LspServerSupportProvider and LspServerDescriptor for mojo lsp and mojo-lsp-server
  • Automatic server start on .mojo or 🔥 file open
  • Settings page for mojo executable path (Settings > Tools > Mojo)
  • SDK discovery via MODULAR_HOME, modular.cfg, and PATH
  • LSP include directories (-I flags) configuration
  • LSP server restart action (Tools > Restart Mojo LSP Server)
  • Diagnostics suppression in docstring code blocks
  • Inlay hints support
  • Semantic tokens support

Editor Features

  • Commenting (Ctrl+/ for # line comments, """ block comments) via TextMate language configuration
  • Brace matching for parentheses, brackets, and braces via TextMate language configuration
  • "New Mojo File" action in project context menu (New > Mojo File)
  • File templates: empty file, main entry point, struct
  • Code folding for functions, structs, and traits
  • Structure view (outline) via LSP document symbols
  • Breadcrumb navigation

Code Formatting

  • mblack formatter integration as async formatting service
  • Format-on-save via platform's Actions on Save > Reformat Code
  • Formatter path configuration (SDK discovery via MODULAR_HOME and PATH)

Run and Debug

  • Run configuration type for mojo run
  • Run line markers (gutter icons for files with fn main)
  • Build configuration for mojo build
  • Test configuration for mojo test
  • Program arguments and working directory configuration
  • LLDB debug configuration for compiled Mojo binaries

Testing Support

  • Test result integration with IDE test runner UI
  • Gutter icons for test functions

IDE Compatibility

  • IntelliJ IDEA Ultimate support (since build 253)
  • PyCharm support
  • CLion support
  • IntelliJ IDEA Community support
  • Compatibility verification across multiple IDE versions

Future Goals

  • Mojo REPL tool window
  • Jupyter notebook support for .ipynb files with Mojo kernels
  • Package manager integration (when Mojo has one)
  • Mojo SDK version manager
  • Live templates and postfix completion for Mojo idioms
  • Inspections and quick fixes beyond LSP diagnostics