C#: Как сделать свой текстовый редактор, на примере редактора кода C#, JS - видео HD
00:17:32
Обнаружено блокирование рекламы на сайте
Для существования нашего сайта необходим показ рекламы. Просим отнестись с пониманием и добавить сайт в список исключений вашей программы для блокировки рекламы (AdBlock и другие).
12n.ru 18469 роликов
949 просмотров на сайте 12n.ru
Как сделать свой текстовый редактор, на примере редактора кода C#, JS - видео.
В этом видео расскажу об очень интересной теме. Редактирование документов, в браузере. Многие из вас видели всякие реализации редакторов прямо в браузере. Я расскажу как сделать свой.
github.com/AlexanderZhelnin/angular-code-editor
github.com/AlexanderZhelnin/angular-code-editor
развернуть свернуть
{
const selection = window.getSelection();
if (!selection) return 0;
const range = selection.getRangeAt(0);
range.setStart(context, 0);
return range.toString().length;
}
function setCursorPosition(context: any, len: number): void
{
const selection = window.getSelection();
if (!selection) return;
const pos = getTextNodeAtPosition(context, len);
selection.removeAllRanges();
const r = new Range();
r.setStart(pos.node, pos.position);
selection.addRange®;
}
function getTextNodeAtPosition(root: any, index: number): { node: any, position: number }
{
const treeWalker = document.createTreeWalker(root, NodeFilter.SHOW_TEXT,
{
acceptNode: (elem: Node): number =>
{
const l = elem?.textContent?.length ?? 0;
if (index > l)
{
index -= l;
return NodeFilter.FILTER_REJECT;
}
return NodeFilter.FILTER_ACCEPT;
}
});
return { node: treeWalker.nextNode() ?? root, position: index };
}