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