add refactor docs
This commit is contained in:
parent
85ed66edfe
commit
cb41085995
1 changed files with 130 additions and 0 deletions
130
doc/refactor.md
Normal file
130
doc/refactor.md
Normal file
|
|
@ -0,0 +1,130 @@
|
|||
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
|
||||
*
|
||||
Loading…
Add table
Add a link
Reference in a new issue