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://ansi-bbs.org/
|
||||||
// * http://www.bbsdocumentary.com/library/PROGRAMS/GRAPHICS/ANSI/ansisys.txt
|
// * http://www.bbsdocumentary.com/library/PROGRAMS/GRAPHICS/ANSI/ansisys.txt
|
||||||
// * http://en.wikipedia.org/wiki/ANSI_escape_code
|
// * http://en.wikipedia.org/wiki/ANSI_escape_code
|
||||||
|
// * https://github.com/chjj/term.js/blob/master/src/term.js
|
||||||
//
|
//
|
||||||
|
|
||||||
var assert = require('assert');
|
var assert = require('assert');
|
||||||
|
@ -66,6 +67,9 @@ var CONTROL = {
|
||||||
|
|
||||||
hideCursor : '?25l', // Nonstandard - cterm.txt
|
hideCursor : '?25l', // Nonstandard - cterm.txt
|
||||||
showCursor : '?25h', // 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 _ = require('lodash');
|
||||||
var GapBuffer = require('gapbuffer').GapBuffer;
|
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
|
// General Design
|
||||||
|
@ -34,7 +63,15 @@ exports.MultiLineEditTextView = MultiLineEditTextView;
|
||||||
//
|
//
|
||||||
// Syncronet
|
// 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) {
|
function MultiLineEditTextView(options) {
|
||||||
|
|
||||||
|
|
|
@ -60,10 +60,10 @@ util.inherits(VerticalMenuView, MenuView);
|
||||||
VerticalMenuView.prototype.redraw = function() {
|
VerticalMenuView.prototype.redraw = function() {
|
||||||
VerticalMenuView.super_.prototype.redraw.call(this);
|
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) {
|
for(var i = this.viewWindow.top; i <= this.viewWindow.bottom; ++i) {
|
||||||
this.items[i].row = x;
|
this.items[i].row = row;
|
||||||
x += this.itemSpacing + 1;
|
row += this.itemSpacing + 1;
|
||||||
this.items[i].focused = this.focusedItemIndex === i;
|
this.items[i].focused = this.focusedItemIndex === i;
|
||||||
this.drawItem(i);
|
this.drawItem(i);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue