editor
所属分类:代码编辑器
开发工具:Scala
文件大小:40KB
下载次数:0
上传日期:2014-05-28 17:18:52
上 传 者:
sh-1993
说明: 基于 React编程的最小文本编辑器
(A minimal text editor based on reactive programming)
文件列表:
.classpath (456, 2013-07-06)
.project (444, 2013-07-06)
src (0, 2013-07-06)
src\reswing (0, 2013-07-06)
src\reswing\ReAbstractButton.scala (878, 2013-07-06)
src\reswing\ReButton.scala (400, 2013-07-06)
src\reswing\ReComponent.scala (5056, 2013-07-06)
src\reswing\ReLabel.scala (1147, 2013-07-06)
src\reswing\ReTextArea.scala (887, 2013-07-06)
src\reswing\ReTextComponent.scala (2246, 2013-07-06)
src\reswing\ReactiveWrapper.scala (1933, 2013-07-06)
src\texteditor (0, 2013-07-06)
src\texteditor\JScrollableComponent.scala (1457, 2013-07-06)
src\texteditor\LineOffset.scala (2316, 2013-07-06)
src\texteditor\events (0, 2013-07-06)
src\texteditor\events\Application.scala (2423, 2013-07-06)
src\texteditor\events\GapBuffer.scala (3184, 2013-07-06)
src\texteditor\events\TextArea.scala (11872, 2013-07-06)
src\texteditor\events\Timer.scala (832, 2013-07-06)
src\texteditor\imperative (0, 2013-07-06)
src\texteditor\imperative\Application.scala (2416, 2013-07-06)
src\texteditor\imperative\ApplicationSwingTextArea.scala (2105, 2013-07-06)
src\texteditor\imperative\GapBuffer.scala (3182, 2013-07-06)
src\texteditor\imperative\TextArea.scala (10852, 2013-07-06)
src\texteditor\imperative\Timer.scala (841, 2013-07-06)
src\texteditor\signals0 (0, 2013-07-06)
src\texteditor\signals0\Application.scala (2026, 2013-07-06)
src\texteditor\signals0\ApplicationSwingTextArea.scala (1774, 2013-07-06)
src\texteditor\signals0\GapBuffer.scala (3502, 2013-07-06)
src\texteditor\signals0\TextArea.scala (10641, 2013-07-06)
src\texteditor\signals0\Timer.scala (1041, 2013-07-06)
src\texteditor\signals0\notes.txt (166, 2013-07-06)
src\texteditor\signals1 (0, 2013-07-06)
src\texteditor\signals1\Application.scala (2026, 2013-07-06)
src\texteditor\signals1\GapBuffer.scala (3501, 2013-07-06)
src\texteditor\signals1\TextArea.scala (11338, 2013-07-06)
src\texteditor\signals1\Timer.scala (1041, 2013-07-06)
src\texteditor\signals2 (0, 2013-07-06)
... ...
editor
======
This project is a basic text editor that comes in five flavors. All versions
except the last one use a gap buffer, a specialized data structure to store the
textual data and allows for efficient insertion and deletion at the caret
position.
- **imperative**
no signals or events, only imperative code, value changes are propagated via
observables (Swing Reactors)
- **events**
REScala events (but no signals)
event stream composition is a bit complex, but this reduces the number of
places where the caret needs to be updated
- **signal0**
based on the *imperative* version but uses REScala events and signals to
express dependencies (e.g. line count etc.)
- **signal1**
based on the *events* version but uses REScala signals
- **signal2**
based on the *signals1* version
this version does not use a mutable data structure (gap buffer) to represent
the text, state is represented using signals and events only. There is just
very little imperative code left that is needed to interact with certain
library functions (like clipboard copy/paste)
近期下载者:
相关文件:
收藏者: