LINUX.ORG.RU
ФорумTalks

Это что, скоро и подсветка тормозить не будет?

 


1

1

Для

Для Ъ: свежее api для сохранения различных свойств для текста, в том числе и подсветка. Свойства привязываются к тексту, и пока он не меняется переносятся вместе с ним при любых других изменениях в буфере. В частности основной юзекейс - кэш подсветки синтаксиса и/или подсветка синтаксиса из альтернативных источников.

★★★★★

Последнее исправление: pon4ik (всего исправлений: 1)

Это же в основном для тултипов и подобного. Не уверен, что существующие файлы подсветки смогут этим воспользоваться.

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

Ну как бы уже пилят во всяких lsp клиентах семантическую подсветку на основе этой фичи.

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

А сейчас в Vim подсветка до сих пор на тормозных RegExp’ах?

Стыд и срам, 2019 год на дворе.

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

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

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

Ну так vim'ом-то кто пользуется? Админы, которым подсветка не очень важна, да и размеры конфигов редко бывают очень уж большими. И фанатики, которые будут пользоваться вимом даже если он вообще запускаться перестанет.

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

Подсветка на регулярных выражениях практически всегда и везде.

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

существующие файлы подсветки

семантическую подсветку

Совсем разные вещи. Второе мне и не нужно, слишком много цветов, тормозов, потребления памяти, а толку мало.

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

А сейчас в Vim подсветка до сих пор на тормозных RegExp’ах?
Стыд и срам, 2019 год на дворе.

А как можно по-другому? С примерами, пожалуйста.

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

Назовёшь хотя бы 5 альтернатив? Желательно, что бы ресурсы не кушали и позволяли развлекаться на зионах слушая тишину?

UPD: зионы разумеется должны базироваться в датацентре, желательно в другой стране.

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

Отказываюсь писать код, потому что у меня не запускается Vim!

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

Вес небольшой единицы трансляции в libclang порядка ста метров. Построение всего этого добра тоже не даром даётся. Оно конечно их не хранит после индексирования, но при редактировании кода заново же парсит. Хотя и на размеры индекса в памяти тоже кто-то жаловался, что гигабайты могут понадобиться. Не помню какой плагин это был.

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

Хз как оно устроенно, но тот же ccls кушает крайне немного памяти даже на плюсовых проектах. Не, если проиндексировать хромого или что нить соразмерное, то конечно придётся пару плашек докупить, но если взять маленькие и средние проекты (ну до 10kkloc) то там потребление памяти каким-то образом умудряется оставаться в пределах 100-300 метров.

Как оно работает - не знаю, допускаю какой то кэш на диске, но работает шустро и памяти кушает меньше чем телега :)

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

Будет подсвечивать функции и макросы разным цветом например. Локальные переменные можно будет подсвечивать разным цветом с глобальными и статическими. Виртуальные функции. Ну в общем любые сущности в языках с контекстно-зависимой грамматикой можно будет выделить при желании. Кастомные типы объектов в конце концов во всяких сишечках.

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

Твои Зионы воют так, что их слышно из другой страны?
Альтернативу чего? Виму как редактору для правки конфигов? Любой текстовый редактор. Абсолютно любой. Для правки конфигов возможности вима не нужны. Да и нет так никаких возможностей особых без плагинов. А на серверах плагинов нет. А если есть, то ты услышишь вой своих Зионов даже из другой страны.

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

Ну я как-то работал в банке, там было чудо-приложение под солярис, но у всех разработчиков стояла винда, домен, нет админских прав и тд. И не было возможности поправить код и сразу запустить компиляцию, не говоря о том, чтобы запустить виртуалку.

Кароче я писал код в vim, подключившись к тестовому стенду через putty.

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

Ну да, ты был поставлен в невыносимые условия и вынужден был использовать что попало от безысходности. Я вот недавно шуруп топором закрутил. Ничего страшного, но это не значит что топор — отвёртка.

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

шуруп топором закрутил

Хех, я как-то в сортире застрял: пошёл в сортир, а там замок заклинило, выйти не могу, девушка с ключами от квартиры на даче под Тулой (я в Москве), больше ни у кого ключей от квартиры нет. Что делать? В итоге разобрал замок «язычком» от пряжки на ремне. Пряжка не отвёртка, да =)

Но ваще я так-то vim использую каждый день для разработки на плюсах и сях. И на перле я тоже пишу в vim.

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

Но ваще я так-то vim использую каждый день для разработки на плюсах и сях.

Но зачем? Даже если ты не программист и просто развлекаешься с языками, то профильная IDE значительно повысит уровень шелковистости волос.
Я когда профессионально начал программировать тоже послушал одного психа и года 3 просидел на Виме. Да, пользоваться можно, но это всего лишь редактор. Когда я пользовался Вимом то даже о Борландовской IDE вспоминал с теплом из-за нормальной интеграции с отладчиком. А потом вышел QtCreator и уже через пару дней я ушёл из Вим навсегда. И никогда не оборачивался.
Ты попробуй воспользоваться профильным инструментом. Возможно ты просто «ничего слаще морковки не ел».

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

Я пробовал и Креатор, и visual studio разных версий, сейчас вот фриланс задачка - портирую Poco под последнюю версию тулчейна от embarcadero, посмотрел на C++ builder, вместо него в итоге использую vim из поставки git4windows.

Когда пришлось писать на шарпе, использовал таки Rider, но и там сразу включал vim-mode.

Даже если ты не программист и просто развлекаешься с языками

Я разработкой на крестах уже больше 10 лет зарабатываю, все это время на vim, да)

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

для всех 100500 типов файлов? и прямо так и все емаксы, эклипсы, икскоды, нетбинсы и вижуалстудии (не говоря уже о всяких бастардах типа атома и прочих текстмейтов) это уже давно и успешно применяют?
вот примеры такого применения хотелось бы, а не.

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

в emacs'е есть evil-mode, который лучше заточен под кривые руки тех у кого пищитипортит

fxd

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

когда в них завезут редактор.
и кстати, что там увидеть предлагается? а то все кивают на то что у остальных всё идеально, но конкретики что-то очень мало.

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

+1
на самом деле в vim дофуя проблем, но местные ололошечки всё равно мало что знают/понимают. они на уровне пищитипортит, ну или максимум ВОТ ПРИШОЛ НЕОВИМ. а чо пришОл и чо сделал пофиг.

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

Хз я в нём конпиляю, и отлаживаю, пересел после ~7 лет промышленного опыта в различных IDE :)

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

На моих зионах была возможность ставить плагины, ну и кроме того, я ни разу не слышал как они воют, в этом и прелесть.

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

профильная IDE значительно повысит уровень шелковистости волос

Вот ооочень спорный вопрос. Руководителям банкета так точно не выгодно, ибо в иде чаще получается говнокод, наблюдал это на практике и не раз, не знаю с чем связанно, но даже мои поделки в ide мне нравятся меньше.

Если что, я продвинутый(писал плагины и макросы всякие) пользователь qtc со стажем :) Возможность трудиться с любого калькулятора из практически любой жопы мира перекрывает пару вещей которые в vim впиливают только сейчас в адекватном исполнении :)

Интеграция с отладчиком это отдельная песня, несколько лет для меня это был шоустоппер. Но потом, я увидел как ребяты автоматизируют gdb и cdb(тот что под офтопик)… В общем графические фронтэнды сильно переоцененны, их как минимум погрепать сложно, а тыкать по брякам руками и искать то, не знаю чего - это скорее потеря времени если не брать в рассчёт образовательные цели.

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

в иде чаще получается говнокод

Да, когда у тебя есть нормальная подсветка, нормальное автодополнение, нормальный дебаггер, нормальный valgrind (забыл как этот класс программ называется) и всё это единообразно и логично объединено под одной крышей, то программист пишет говнокод и только великий vim, своими тормозами и бибиканьем держит оператора (другого слова и не подберёшь) в тонусе и не позволяет ему расслабиться.
У меня больше нет вопросов.

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

Я сам не понимаю как так выходит, но это эмпирическое наблюдение притом не только моё ~\|/~.

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

забыл как этот класс программ называется

Наверное дело в этом, может если бы ты сидел не в ide, то помнил бы, что valgrind это название для целого набора утилит, включающего профилировщик памяти, санитайзер памяти и проффилировщик времени выполнения, а так же санитайзер использования примитивов синхронизации, чет там ещё вроде было, но это то, что на кончиках пальцев :)

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

Не совсем, tree-sitter это только про парсинг синтаксиса. lsp, при полной имплементации это тоже должен уметь, но tree-sitter работает без конфигурации, ему не нужны завимисимости и в целом должен быть быстрее. Например, vscode недавно научился делать семантическую подсветку синтаксиса, но если в систему не установить хедеры CURL, то следующий участок кода не подсветится

CURL curl;

А tree-sitter этого достаточно для подсветки кода.

P.S. А встроенную поддержку lsp в neovim тоже пилят

https://github.com/neovim/neovim/pull/10222

Vovka-Korovka ★★★★★
()
Ответ на: комментарий от Vovka-Korovka

То что пилят - молодцы. Для меня спорный вопрос поддержка из коробки, лучше пилить интерфейсы для расширений более удобные.

истему не установить хедеры CURL, то следующий участок кода не подсветится

Что казалось бы чертовски логично и удобно.

В общем и целом - альтернативы это хорошо. Архитектурно мне нравится другой подход поэтому я этой штукой вряд ли буду пользоваться в ближайшее время. Плюс люди оставляющие master красным меня слегка пугают.

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

Для меня спорный вопрос поддержка из коробки, лучше пилить интерфейсы для расширений более удобные.

Ну они, вроде как, делают самый минимум, чтобы существующие lsp-плагины, вроде того же coc, не держали собственную копию буфера с текстом.

Vovka-Korovka ★★★★★
()
Ответ на: комментарий от Kroz

В scintilla нормальные лексеры для разных типов файлов. В компоненте, который используется в текстовых редакторах KDE, кажется, тоже. (Источник: гугол).

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

По разному, на самом деле. Маркапы (tex, xml, html, …) тормозят практически до фризов даже на небольших файлах. C++ работает нормально. CMake не тормозит, но всё время неправильно раскрашивает, и надо жать ^L чтобы vim перерисовал.

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

Подсветки синтаксиса вполне могут быть grayscale. Или хотя бы использовать bold, italic, underline. Это будет соответствовать левой картинке, а не :syntax off.

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

пример тормозов, я их не встречал в дикой природе ни разу.

25-мегабайтный XML тормозить будет? Почти весь объём, помимо ~30 строк — точки ломаной в виде кастомного тега. Выложить не могу, NDA.

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

Кстати точно, xml и я видал тормозящий и меньших объемов. Но это было так давно, что успел забыть.

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