LINUX.ORG.RU

Создание текстового редактора


0

2

Я хочу написать IDE, но это в далеком будущем, а сейчас меня интересует как реализовать функции на уровне ОС. Например, выделение текста, я конечно могу вручную реализовать данный функционал, но будет ли так правильно? Вот например в убунту текст выделяется оранжевым, как это реализовать? Может есть исходники где показана базовая робота с выделением и текстом(блокнот например)

★★★

Ответ на: комментарий от e1nste1n

Там есть вкладки, замена кода, подсветка кода и многое другое, меня же интересует просто вывод текста так чтоб он работал привычным образом для человека. Мне будет трудно разобраться со всеми этими исходниками

abs ★★★
() автор топика

Реализуй свои офигенные идеи в emacs-е. // на самом деле найди их уже сделанными

Kuzy ★★★
()

Отталкивайся от библиотек.
Есть curses — там сам сделаешь выделение.
Есть Qt — там весь редактор пишется за час.
Есть голый терминал с его командами — там весело.
Есть ещё много чего.
А ты настолько мало продумал чего ты хочешь, что даже не можешь внятно спросить.

Stahl ★★☆
()
Ответ на: комментарий от Stahl

А ты настолько мало продумал чего ты хочешь, что даже не можешь внятно спросить.

1) Быстро работает(В android studio текст на экране отстает на долю секунды от клавиатуры).

2) Возможность сделать нумерацию строк, сворачивание и другое что есть в ИДЕ.

3) Возможность рисовать что-то в любом месте.

abs ★★★
() автор топика
Последнее исправление: abs (всего исправлений: 1)
Ответ на: комментарий от Stahl

А ты настолько мало продумал чего ты хочешь

Честно говоря я сам затрудняюсь сказать чего я хочу, потому что не понимаю как работает текст на уровни ОС. Вот если бы я увидел какую-то статью, или исходный код какого-то элементарного текстового редактора)

abs ★★★
() автор топика
Ответ на: комментарий от abs

рисовать

Ну из этого следует, что редактор иксовый, так? Мог бы сразу об этом сказать.
Если ты возьмёшь в качестве базиса Кт или ЖТК, что 90% мелкой возни по отрисовке шрифтов, курсоров, выделений и прочего возьмёт на себя библиотека.
Это уже всё реализовано.

Stahl ★★☆
()
Ответ на: комментарий от Stahl

Ну из этого следует, что редактор иксовый, так?

Хотелось бы поддержку макОс, но не принципиально

abs ★★★
() автор топика
Ответ на: комментарий от i-rinat

Начни с рисунков экранов редактора.

Лорчую.

mix_mix ★★★★★
()

Выделение текста? На уровне ОС?!? Рано тебе текстовый редактор писать...

anonymous
()

а сейчас меня интересует как реализовать функции на уровне ОС. Например, выделение текста,...Может есть исходники где показана базовая робота с выделением и текстом(блокнот например)

--==на правах рекламы==--

package require Tk
set editor [ text .text ]
pack $editor

дальше всё просто - накидываешь сверху свой функционал и вперёд :-)

MKuznetsov ★★★★★
()
Последнее исправление: MKuznetsov (всего исправлений: 1)
Ответ на: комментарий от abs

Э-х-х-х... Ты совсем не в теме видимо.
Напиши для начала просто редактор. В отрыве от интерфейса. Хотя какое тут «напиши». Ты хоть придумай его.
Ты напоминаешь «домики деревяные набигают солдаты дворца и злодеи. Можно грабить корованы...»
Без обид.

Stahl ★★☆
()
Ответ на: комментарий от anonymous

Выделение текста? На уровне ОС?!?

Ну смотри, я мог бы просто НАРИСОВАТЬ текст(QPainter::drawText для примера) но его нельзя будет выделить мог бы реализовать выделение текста вручную(помешать его в буфер обмена), но есть разные настройки ОС и другие программы их как-то видят(В убунту выделения все оранжевые)

abs ★★★
() автор топика
Ответ на: комментарий от abs

выделения оранжевые? о боже.
Для того, чтобы выделить текст в qt, надо запилить обработчик, которые будет смотреть позицию курсора и рисовать QRect «такого красивого» оранжевого цвета, который он читает из конф
ига установленной темы.

arrecck ★★★
()
Ответ на: комментарий от slyjoeh

Появляется инновационная ide. Новый дизайн, новый подход к ui, уже совсем скоро, буквально через пару лет, разрабы обещают добавить подсветку синтаксиса для всех ЯП. И так каждый раз.

arrecck ★★★
()

я конечно могу вручную реализовать данный функционал

Нет, не можешь.

aedeph_ ★★
()
Ответ на: комментарий от MKuznetsov

во-первых, $editor в точности равен .text, так что программу можно упростить до

package require Tk
pack [text .text]

во-вторых, text в tk действительно очень мощный, но некоторые элементарные вещи (скажем, сделать его неизменяемым, сохранив возможность выделения, прокрутки и т.д.) делаются настолько нетривиально, что иногда проще воспользоваться чем-нибудь другим.

anonymous
()
Ответ на: комментарий от arrecck

А после текстового редактора можно и за аудиоплеер взяться, тоже непаханое поле.

slyjoeh ★★★
()
Ответ на: комментарий от abs

Честно говоря я сам затрудняюсь сказать чего я хочу, потому что не понимаю как работает текст на уровни ОС. Вот если бы я увидел какую-то статью, или исходный код какого-то элементарного текстового редактора)

Текст работает на уровне тулкита. Параметры выделения (оранжевый, можно ли скопировать) и прочего — прерогатива тулкита. Копипаст — смотря как и где реализовано. В GNU/Linux, если не ошибаюсь, за это отвечает XServer. Drag'n'Drop текста — тоже тулкит.

EXL ★★★★★
()
Ответ на: комментарий от abs

но его нельзя будет выделить

И при чем тут ОС?!? Это личные половые трудности тулкита.

В убунту выделения все оранжевые

И в самом деле, корованы...

anonymous
()
Ответ на: комментарий от anonymous

Плюсую, text штука очень годная, но выглядит какой-то вечно недопиленной. В отличие от того же канваса. Впрочем, с таблицами все еще сложнее.

buddhist ★★★★★
()

текст выделяется оранжевым, как это реализовать

Этим занимается не ОС, а графический тулкит с его темой.

buddhist ★★★★★
()
Ответ на: комментарий от DeadEye

Слушай, ты мне ща напомнил мой же тупняк в Development годовалой давности.

Ты тоже делал IDE? И как?

abs ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.