LINUX.ORG.RU
ФорумTalks

А что в этом вашем Sublime Tex есть такого, чего нет в Geany ?


0

2

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

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

как-то не думал об Emacs. Надо будет глянуть тоже, спасибо.

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

Я даже одной Go to declaration буду очень рад - с ней особенно классно, когда объясняешь кому-то код :)

А так не, не только Идея это умеет.

void
()

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

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

ты имеешь ввиду RubyMine? Я как раз пробую на него пересесть с саблайма сейчас. Ну а так есть еще как минимум RadRails, Komodo...

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

Я даже одной Go to declaration буду очень рад

и чтобы это реализовать в редакторе нужно всего-то ничего - написать собственный компилятор Ruby :))) Или взять готовый, вникнуть в суть мыслей наркомана Юкихиро Мацумото, и выдрать из него хотя бы генератор ASTа. Да если это сделать, можно что угодно сделать, не только Go to declaration :)

кстати, я не сильно знаком с Руби, но разве же там можно статически определить declaration? Там же жесткий runtime? Вот в PHP точно невозможно статически реализовать go to declaration. Настолько невозможно, что им даже пришлось придумывать очень особый способ замыканий, и то это была только часть проблемы...

Такой контрпример для Ruby: есть некое сложное выражение, от которого зависит название функции и файла, в которой эта функция объявлена. Например, классическая система подключения пакетов, которая по строке «use com.microsoft.word.main» подгружает файл с названием main, и ищет там функцию mainAction, которой интроспекцией угадывает параметры вызова. Как IDE должно интерпретировать go to declaration для переменных, объявленных внутри main, но использующихся во внешнем коде?

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

Ты как-то слишком глубоко капнул :) Если используются элементы метапрограммирования, то на переваривание такого кода много ресурсов будет уходить - его же надо переваривать на лету. Я думаю это главная причина, почему IDEшки хитрые конструкции не индексируют.

Только что проверил в RubyMine в одном классе создать метод через define_method (аналог, кажется, create_function в php), в другом классе вызывая этот метод RubyMine его подчеркивает - не может определить действительно ли в том классе такой метод определен. То есть даже такие вещи уже не попадают в индекс и, естественно, можно забыть про autocomplete, go to declaration и тд. Как и в твоем примере, в общем.

Но мне и не нужно идеального go to declaration, мне хватает того, что дает индексатор в том же RubyMine - без парсинга сложный конструкций.

Вот есть реактивный кодо-индексатор ctags, есть плагин для его интеграции в ST2. Если бы он нормально индексировал руби код, мне его тоже хватило бы. Но он почему-то иногда не находит явным образом объявленые методы, иногда находит declaration методов в тексте комментариев (название метода совпадает со словом в тексте комментария). Если сердце так и не ляжет ни к какой IDE, вернусь на ST2/Vim и попробую допилить парсер рубишного кода для ctags.

А что значит статически определить declaration и жесткий runtime? Во всяком случае на лету дергать целый интерпретатор мне представляется очень дорогим решением...

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

прелесть емакса не в плагинах - раз, плавность с емаксовым подходом к навигации совершенно не критична - два

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

прелесть емакса не в плагинах - раз

Конечно-конечно, в елиспе наверно, прелесть. Без кучи готовых модов к прочим достоинствам он ничем не лучше любого другого редактора, который предоставляет API для доступа к своим внутренностям.

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

он ничем не лучше любого другого редактора, который предоставляет API для доступа к своим внутренностям.

именно! ни один редактор не предоставляет такое же полноценное (при этом отлично документированное) API для доступа к кишкам

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

А что значит статически определить declaration и жесткий runtime? Во всяком случае на лету дергать целый интерпретатор мне представляется очень дорогим решением...

для Scala создатели наваяли аж два рантайма, второй - специально чтобы дергать его из IDE :)

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