Merge branch 'master' of ssh://numinibsd/git/base/enigma-bbs
This commit is contained in:
commit
c00fa67b94
|
@ -8,6 +8,7 @@
|
|||
// * http://ansi-bbs.org/
|
||||
// * http://www.bbsdocumentary.com/library/PROGRAMS/GRAPHICS/ANSI/ansisys.txt
|
||||
// * http://en.wikipedia.org/wiki/ANSI_escape_code
|
||||
// * https://github.com/chjj/term.js/blob/master/src/term.js
|
||||
//
|
||||
|
||||
var assert = require('assert');
|
||||
|
@ -66,6 +67,9 @@ var CONTROL = {
|
|||
|
||||
hideCursor : '?25l', // Nonstandard - cterm.txt
|
||||
showCursor : '?25h', // Nonstandard - cterm.txt
|
||||
|
||||
// :TODO: see https://code.google.com/p/conemu-maximus5/wiki/AnsiEscapeCodes
|
||||
// apparently some terms can report screen size and text area via 18t and 19t
|
||||
};
|
||||
|
||||
/*
|
||||
|
|
|
@ -10,6 +10,35 @@ var assert = require('assert');
|
|||
var _ = require('lodash');
|
||||
var GapBuffer = require('gapbuffer').GapBuffer;
|
||||
|
||||
//
|
||||
// Notes
|
||||
// * options.tabSize can be used to resolve \t
|
||||
// * See https://github.com/dominictarr/hipster/issues/15 about insert/delete lines
|
||||
//
|
||||
// Blessed
|
||||
// insertLine: CSR(top, bottom) + CUP(y, 0) + IL(1) + CSR(0, height)
|
||||
// deleteLine: CSR(top, bottom) + CUP(y, 0) + DL(1) + CSR(0, height)
|
||||
// Quick Ansi -- update only what was changed:
|
||||
// https://github.com/dominictarr/quickansi
|
||||
//
|
||||
// This thread is awesome:
|
||||
// https://github.com/dominictarr/hipster/issues/15
|
||||
//
|
||||
// See Atom's implementations
|
||||
// Newer TextDocument
|
||||
// https://github.com/atom/text-document
|
||||
//
|
||||
// Older TextBuffer
|
||||
// http://www.oscon.com/oscon2014/public/schedule/detail/37593
|
||||
//
|
||||
// Span Skip List could be used for mappings of rows/cols (display) to
|
||||
// character offsets in a buffer
|
||||
// https://github.com/atom/span-skip-list
|
||||
|
||||
//
|
||||
// Buffer: Actual text buffer
|
||||
// Transform: Display of soft wrap & tab expansion (e.g. tab -> ' ' * tabWidth)
|
||||
//
|
||||
|
||||
//
|
||||
// General Design
|
||||
|
@ -34,7 +63,15 @@ exports.MultiLineEditTextView = MultiLineEditTextView;
|
|||
//
|
||||
// Syncronet
|
||||
//
|
||||
|
||||
//
|
||||
// Projects of use/interest:
|
||||
//
|
||||
// https://github.com/atom/text-buffer
|
||||
// http://danieltao.com/lazy.js/
|
||||
// http://www.jbox.dk/downloads/edit.c
|
||||
// https://github.com/slap-editor/slap
|
||||
// https://github.com/chjj/blessed
|
||||
//
|
||||
|
||||
function MultiLineEditTextView(options) {
|
||||
|
||||
|
|
|
@ -60,10 +60,10 @@ util.inherits(VerticalMenuView, MenuView);
|
|||
VerticalMenuView.prototype.redraw = function() {
|
||||
VerticalMenuView.super_.prototype.redraw.call(this);
|
||||
|
||||
var x = this.position.row;
|
||||
var row = this.position.row;
|
||||
for(var i = this.viewWindow.top; i <= this.viewWindow.bottom; ++i) {
|
||||
this.items[i].row = x;
|
||||
x += this.itemSpacing + 1;
|
||||
this.items[i].row = row;
|
||||
row += this.itemSpacing + 1;
|
||||
this.items[i].focused = this.focusedItemIndex === i;
|
||||
this.drawItem(i);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue