ZigBrains/MODULE_TREE.md
FalsePattern 59d4dcc8bf
backport: master
fix: Local variables now show up in the debugger properly

chore: The flattening

chore: Remove unnecessary plugin xmls

docs: Update module tree

chore: Remove flexmark, replace with builtin intellij apis

fix: wrong lsp4j package (used IJ shipped lsp4j instead of ours)

(cherry picked from commit 49483a9f9c)

ci: fix deps

(cherry picked from commit 1ff8616d26)

chore: better project path management

(cherry picked from commit 0ebbe1cc9b)

ci: Slightly better git version management

(cherry picked from commit 6fbf826574)

chore: Optimize imports

(cherry picked from commit 92c5e57a03)

chore: Require restart unconditionally

(cherry picked from commit 9e90502b05)

docs: Update readme

(cherry picked from commit 95799c627b)

docs: Update changelog

(cherry picked from commit 45b153f7c4)

feat: Better configurability

(cherry picked from commit ec5c07c0a1)

fix: Annotator jank breaking diagnostics

(cherry picked from commit 85bd68393c)

chore: move some misplaced xml entires

(cherry picked from commit 7b2ad7c324)

feat!: Huge debugging refactor

- Debug support for Windows
- Debuggable zig build
- Debuggable binaries

This is a squashed commit so ignore the weird author date

(cherry picked from commit 3d0dbb8e36)

fix: NPE in go to definition

(cherry picked from commit b4539c0aa9)

fix: Builds on windows again

(cherry picked from commit 733f0b2622)

feat: Improved docs, more reliable file sync

(cherry picked from commit 23b72086bc)

chore: LanguageServerDefinition remove ancient obsolete logic

(cherry picked from commit 8a0c862446)

chore: Move lsp connection logic to lsp-common

(cherry picked from commit 3287051e3d)

chore: Move ApplicationUtil to common

(cherry picked from commit 845af09e29)

feat!: Colored builds and clickable file path references

(cherry picked from commit 66aef224b2)
2024-03-12 14:59:35 +01:00

1.2 KiB

What is this?

This document describes the relationships between the different "modules" of ZigBrains.

These relationships are strictly enforced, and modules that do not directly (or indirectly) depend on another module cannot access their classes.

The primary purpose of this strictly enforced module system is to avoid code compatible with open source IDEs (IDEA/PyCharm Community) from depending on code that only works on proprietary IDEs (IDEA Ultimate/CLion/...).

NOTE: These "modules" are in no way related to the module system introduced in Java 9. They're just called the same.

The suffix after the module name signifies which IDE it depends on.

  • IC: IDEA Community
  • CL: CLion
  • EXT: External maven library

IC modules MUST NOT depend on CL modules, as this violates the restrictions set forth above.

Modules

Common (IC)

LSP-Common (IC)

  • LSP4J (EXT)

LSP (IC)

  • Apache Commons Lang 3 (EXT)
  • Common (IC)
  • LSP-Common (IC)

Zig (IC)

  • Grammarkit (EXT)
  • Common (IC)
  • LSP (IC)

Project (IC)

  • Common (IC)
  • Zig (IC)

Zon (IC)

  • Grammarkit (EXT)
  • Common (IC)

Debugger (IU/CL)

  • Common (IC)
  • LSP-Common (IC)
  • Zig (IC)
  • Project (IC)