我有一些这样的代码:
// highlight text
vi.prototype.parse = function (text) {
// some code
this.data = data;
};
// place it on canvas
vi.prototype.render = function () {
/* loop */
this.ctx.clearRect(/* ... */);
this.ctx.fillStyle = this.data[i].bg;
this.ctx.fillRect(/* ... */);
this.ctx.fillText(data[i].text, /* ... */);
// ....
/* end loop */
};
每次文本更改时,我都会解析和呈现文本。线条无法进入画布这一事实使一切变得复杂。
1 Some line
2 Some long line line line line line line line li
ne line line
3 Some line
用背景色和前景色解析和存储文本的最佳方法是什么?
我需要打印带有语法突出显示的文本。我有一个函数可以解析文本并以某种形式返回它,例如
text = "var x;";
highlightedText = vi.parse (text);
console.log (highlightedText);
>> [[ {text: "var", fg: "#dd5", bg: "#000"},
{text: " ", fg: "#FFF", bg: "#000"},
{text: "x", fg: "#5dd", bg: "#000"},
{text: ";", fg: "#FFF", bg: "#000"}]];
// Displays the text in canvas
vi.render (highlightedText);
我认为这不是存储文本数据的好方法