Architecture

As-Is

These are how we think everything works in the current master branch.

Front End

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
Input In [2], in <cell line: 1>()
----> 1 get_ipython().run_line_magic('dot', 'dot/as-is/frontend.dot')

File ~/checkouts/readthedocs.org/user_builds/jupyterlab-lsp/conda/v3.10.1/lib/python3.10/site-packages/IPython/core/interactiveshell.py:2285, in InteractiveShell.run_line_magic(self, magic_name, line, _stack_depth)
   2283     kwargs['local_ns'] = self.get_local_scope(stack_depth)
   2284 with self.builtin_trap:
-> 2285     result = fn(*args, **kwargs)
   2286 return result

Input In [1], in dot(line, cell)
      8 @IPython.core.magic.register_line_cell_magic
      9 def dot(line, cell=None):
---> 10     src = graphviz.Source(pathlib.Path(line).read_text() if line else cell)._repr_svg_()
     11     src = re.sub(r"<svg (.*)viewBox", "<svg viewBox", src, flags=re.M | re.DOTALL)
     12     return IPython.display.SVG(data=src)

AttributeError: 'Source' object has no attribute '_repr_svg_'

Positioning system

positioning system

Back End

Proposals

Some fragments of how the architecture could change in the future, and why (or why not) they might be a good idea.

Reorganize client source with lerna and typescript projects #76

TBD

Add DiagnosticsManager, refactor DiagnosticPanel #176

TBD

Multiple sources of LSP messages on frontend and backend #184

TBD

Use mime types from server spec for language detection #190

TBD

Formalize and extend language transclusion #191

TBD