Cangjie Language Plugin for IntelliJ Platform

December 5, 2025 · View on GitHub

中文文档

A comprehensive language plugin for the Cangjie programming language on IntelliJ-based IDEs.

Supports the latest 4 IDE versions .

Get it from JetBrains Marketplace

Repositories

Gitee star

GitCode Cangjie-SIG star

GitCode Open Cangjie Community star

CangNova - IntelliJ-based IDE star


Installation

Search for CangJie in the Plugins marketplace of your IntelliJ-based IDE and install it.

img_2.png

To create a project, use the CangJie template.


Features

FeatureStatusDescription
Syntax ParsingFull syntax support including classes, functions, variable declarations, etc.
Syntax HighlightingBasic lexical highlighting
Code Completion±Partially supported, continuously improving
Code FormattingSupported
DebuggingDAP debugging and lldb debugging
Run Targets±Partially supported
LSPImplemented via LSP4IJ
Project ManagementCJPM project parsing and dependency management
Workspace SupportMulti-module workspace projects

Legend:

  • ✓ Implemented
  • ± Partially supported
  • - Planned

Project Architecture

For detailed project structure, see PROJECT_STRUCTURE.md.

Tech Stack:


Development Guide

Building the Project

# Full build
./gradlew build

# Run plugin in IDE sandbox
./gradlew :plugin:runIde

# Build plugin distribution
./gradlew :plugin:buildPlugin

Generating Lexer

After modifying .flex files, regenerate the lexer:

./gradlew :psi:generateLexers

Running Tests

# Run all tests
./gradlew test

# Run specific module tests
./gradlew :psi:test

Multi-Version Support

# Build for specific IDE version
./gradlew build -PplatformVersion=242
./gradlew build -PplatformVersion=253

Contributing

If you find any issues or missing features, contributions are welcome!

How to Contribute

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

This project is licensed under the Apache License 2.0.

You are free to use, modify, and distribute this software under the terms of the license. The license permits:

  • Commercial use
  • Modification
  • Distribution
  • Patent use
  • Private use

For full license details, see the LICENSE file or visit Apache License 2.0.



Thank you for your support!