MCPcopy Index your code
hub / github.com/eclipse-sprotty/sprotty

github.com/eclipse-sprotty/sprotty @v1.4.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.4.0 ↗ · + Follow
2,180 symbols 4,929 edges 263 files 106 documented · 5%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Sprotty

Gitpod - Code Now Join the chat at https://gitter.im/eclipse/sprotty

This is the client part of Sprotty, a next-generation, open-source diagramming framework built with web technologies.

Some selected features:

  • Fast, scalable SVG rendering that is compatible with all modern browsers and stylable with CSS
  • Animations built into the core
  • Support for a distributed runtime with client and server
  • Fast, reactive client architecture implemented in TypeScript
  • Java or Node.js based server architecture
  • Configuration via dependency injection
  • Integrations with Xtext, Langium, the Language Server Protocol, VS Code and Theia
  • Can be run as rich-client as well as in the browser

Repositories

The Sprotty project spans across four GitHub repositories.

  • sprotty (this repository) contains the client code (sprotty), shared code for Node.js servers (sprotty-protocol), ELK layout integration (sprotty-elk) and examples.
  • sprotty-server contains server code for Java and includes server-side diagram layout, the extension of the Language Server Protocol, and the integration with the Xtext framework.
  • sprotty-theia contains the glue code to integrate Sprotty views in the Theia IDE.
  • sprotty-vscode contains the glue code to integrate Sprotty views in VS Code.

The project is built on ci.eclipse.org/sprotty.

Docs

For further information please consult the documentation on the website.

The version history is documented in the CHANGELOG. Changes are tracked seperately for each package.

References

  • Example: view filtering – using filtering to efficiently navigate a large dataset of publications and citations
  • Example: nested graphs – expanding nested subgraphs in-place to efficiently navigate a large project with TypeScript modules
  • Yangster – a VS Code extension for the YANG language

Extension points exported contracts — how you extend this code

IModelLayoutEngine (Interface)
(no doc) [6 implementers]
packages/sprotty-protocol/src/diagram-services.ts
ILogger (Interface)
(no doc) [6 implementers]
packages/sprotty/src/utils/logging.ts
IElementFilter (Interface)
(no doc) [6 implementers]
packages/sprotty-elk/src/elk-layout.ts
Terminal (Interface)
(no doc)
packages/sprotty-library/src/flowchart/model.ts
TaskNode (Interface)
(no doc)
packages/generator-sprotty/sprotty-local-template/src/model.ts
ProcessorSchema (Interface)
(no doc)
examples/multicore/src/chipmodel.ts
TestProps (Interface)
(no doc)
examples/jsxample/src/views.tsx
IDiagramGenerator (Interface)
(no doc) [2 implementers]
packages/sprotty-protocol/src/diagram-services.ts

Core symbols most depended-on inside this repo

get
called by 161
packages/sprotty/src/features/routing/routing.ts
addKeyCode
called by 119
packages/sprotty/src/utils/keyboard.ts
forEach
called by 111
packages/sprotty/src/utils/iterable.ts
get
called by 106
packages/sprotty/src/utils/registry.ts
configureModelElement
called by 92
packages/sprotty/src/base/views/view.tsx
add
called by 81
packages/sprotty/src/base/model/smodel.ts
set
called by 68
packages/sprotty/src/features/routing/routing.ts
getById
called by 59
packages/sprotty/src/base/model/smodel.ts

Shape

Method 977
Class 593
Function 373
Interface 234
Enum 3

Languages

TypeScript100%

Modules by API surface

packages/sprotty-library/src/flowchart/views.tsx61 symbols
packages/sprotty/src/features/move/move.ts53 symbols
packages/sprotty/src/graph/views.tsx50 symbols
packages/sprotty-protocol/src/actions.ts50 symbols
packages/sprotty/src/base/views/mouse-tool.ts42 symbols
packages/sprotty-elk/src/elk-layout.ts42 symbols
packages/sprotty/src/features/hover/hover.ts40 symbols
packages/sprotty/src/features/routing/routing.ts35 symbols
packages/sprotty/src/base/model/smodel.ts35 symbols
packages/sprotty-protocol/src/model.ts35 symbols
packages/sprotty/src/features/select/select.ts31 symbols
packages/sprotty/src/features/edit/edit-label-ui.ts31 symbols

For agents

$ claude mcp add sprotty \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page