130 lines
2.4 KiB
Markdown
130 lines
2.4 KiB
Markdown
Beziehung Document <1-1> Buffer <1-n> Buffer State <1-1> Window
|
|
|
|
Document
|
|
========
|
|
|
|
In memory representation of a text file
|
|
|
|
Register
|
|
========
|
|
|
|
Holds a text fragment
|
|
|
|
Buffer
|
|
======
|
|
|
|
Document plus additional meta data.
|
|
|
|
* document
|
|
* filename
|
|
* undomanager
|
|
* language mode
|
|
* dirty flag
|
|
|
|
BufferState (ViewState?)
|
|
===========
|
|
|
|
Holds state specific for a buffer in a window.
|
|
|
|
* buffer
|
|
* window
|
|
* selection/cursor
|
|
* folding
|
|
* scroll positions
|
|
|
|
Window
|
|
======
|
|
|
|
A window is the viewport of a buffer
|
|
|
|
* one buffer state
|
|
* size on screen in px
|
|
* lineheight
|
|
* wrapping
|
|
* focused
|
|
|
|
Editor (Model)
|
|
==============
|
|
|
|
Holds the editor global state
|
|
|
|
* maanges buffer states
|
|
* list of buffers
|
|
* list of views
|
|
* active window
|
|
* registers
|
|
* search
|
|
* layout of windows (relative sizes)
|
|
* window aspect ratio
|
|
|
|
LayoutManager
|
|
=============
|
|
|
|
later
|
|
|
|
EditorView
|
|
==========
|
|
|
|
Renders the frame of the editor containing multiple windows and optionally a
|
|
command line.
|
|
|
|
* keyboard input
|
|
* renders layout of editor views
|
|
* provides parent DOM element for editor views
|
|
|
|
WindowView
|
|
==========
|
|
|
|
Renders a single window on the screen.
|
|
|
|
* mouse input
|
|
* scrolling
|
|
* gutter (line numbers)
|
|
* text rendering
|
|
|
|
Editor (Controller)
|
|
===================
|
|
|
|
Ties views and models together. Propagates user and model events.
|
|
|
|
Might act as a proxy to the editor model. This will be the main entry class for the user.
|
|
|
|
WindowController
|
|
================
|
|
|
|
Syncs one WindowView with one Window model
|
|
|
|
|
|
Transition/Refactoring
|
|
======================
|
|
|
|
* rename virutal_renderer to WindowView OK
|
|
* rename edit_session to Buffer OK
|
|
* create Window model OK
|
|
* move state from renderer to window model WIP
|
|
- remove config.characterWidth OK
|
|
- remove config.lineHeight OK
|
|
- remove config from layers. Use this.model instead OK
|
|
- move scrolling code to the model OK
|
|
- move updateLayerConfig to model!
|
|
- create unit tests for window model
|
|
* move event handling code from editor.js to window_controller.js
|
|
* split editor.js into Editor(Controller) and WindowController
|
|
|
|
* restore scroll position on buffer change
|
|
* editor.$search OK
|
|
|
|
* addEventListener -> on
|
|
* blockScrolling OK
|
|
* highlightBrackets OK
|
|
* textInput to window_view or pass in as constructor argument
|
|
* remove setSession from text layer
|
|
* text navigation code
|
|
|
|
* remove default settings OK
|
|
* remove dom.js selection code
|
|
* chrome detection OK
|
|
|
|
* get rid of "MockRenderer" OK
|
|
* update browser tests
|
|
*
|