LINUX.ORG.RU
ФорумTalks

Что вам больше всего нужно в обычном редакторе/IDE?

 , , ,


0

2

По мотивам:

Подарите старый NetBeans 8 с поддержкой C++ (комментарий)

Мне интересно, кто как больше всего применяет и редакторы кода, и просто текстовые редакторы, вроде Notepad++. На самом деле то же самое я пытаюсь узнать уже много тредов, но почему-то всегда получаю абстрактные ответы «NeoVim — говно хипстерское» или «зато в виме макросы есть» — правда, ни один пример полезного применения макросов мне пока что не смогли привести.

Итак, дублирую здесь свои требования к IDE/редактору:

Для меня ключевые фичи — это подсветка синтаксиса, пар скобок, текущей строки, достаточно простые операции автоматической обработки текста, вроде «верхний/нижний регистр», замена табов на пробелы и обратно, и вообще автоприменение отступов, и самое-самое-самое главное — это фичи обзора кода, то есть: поиск слов по файлам, открытие файлов по нечеткому имени, поиск тегов по нечеткому совпадению, в идеале поиск объявлений/реализации, иерархии вызовов, и самая обожаемая фича в VS, которую не может повторить никто — это возможность выстроить ручными или полуручными переходами иерархию связанного кода в одном окне прямо в коде. Обычно максимум что могут редакторы по последнему пункту — это позволят открыть несколько окошек и просматривать другие файлы параллельно там, пока не забудешь, что к чему привязано и зачем ты это вообще открывал. Вкладки для этой задачи подходят еще меньше, поскольку смысл их открытия забывается еще быстрее.

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

★★★★

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

Если редактор разрабатывают люди, адекватно понимающие юзабельность программ, сделать удобно и понятно им труда не составит

Если не составит, то где же они?

Ты совсем неадекват? Этот редактор использовался четверть века назад

Четверть века назад не существовало инкрементального поиска?

byko3y ★★★★
() автор топика
Последнее исправление: byko3y (всего исправлений: 1)
Ответ на: комментарий от no-such-file
Ответ на: комментарий от no-such-file

Но ведь любой проект, чуть больше хеловорда на 90% состоит из легаси-говна

Не, там речь шла про специфичное легаси-говно на старой жаве.

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

Возможность работы с файлами любого размера, строками любого размера (например файл размером в терабайт со строкой длиной в терабайт) с минимальным потреблением памяти

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

Автоматическое сохранение изменений при выходе из программы без дополнительных вопросов (не в оригинальные файлы, а во «временные» файлы). Т.е. я могу открыть редактор, открыть в нём 10 файлов, ещё 10 новых создать, что-то изменить и закрыть редактор без каких-либо вопросов. При следующем открытии я ожидаю всё увидеть ровно в том же состоянии, в котором оно было перед закрытием

Да, я тоже кайфую от этой фичи у Notepad++ и VS Code. Странно, что все IDE/редакторы ее не повторяют.

Работа с read-only файлами в режиме логов: следование за концом файла, подсветка и фильтрация по регэкспам

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

К IDE требования я не формулировал, тут в целом всего, да побольше. Работа с программой, рефакторинги, отладка, где-то поддержка специфических библиотечных форматов и тд. В целом я давно пользуюсь Idea и она меня почти полностью устраивает, поэтому тут расписывать смысла не вижу, это будет повторение фич идеи

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

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

Куча расширений, от браузера до кофеварки

Я не понимаю, чего такого драгоценного в Emacs или какой-то другой IDE, чтобы человеку прям-таки очень хотелось внутри иметь кучу расширений, а не снаружи и не рядышком, как и любую другую программу в ОС. Раньше еще как-то можно было это понять, когда буфера обмена не было — но сейчас-то он есть, информацию можно тягать спокойно туда-сюда.

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

Не знаю, просто нравится мне emacs, ничего не могу с собой поделать. Я по приколу городил «emacsOS» когда-то, поставил почти все расширения, что нашел, а это во времена 4 пней было, и все равно не тормозил.

Dog ★★★
()

От редактора хочется для начала f, %, yy, p.

От IDE — дебаггера, конечно. И хоть какой-нибудь статический анализатор если компилятор не умеет в него сам.

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

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

Нет, нужно работать с обычными файлами. Такие редакторы есть. Например EditPad для Windows. Понятно, что некоторые фичи вроде номеров строк при перемотке в самый низ без полного сканирования нереализуемы, но то, что реализуемо, должно работать.

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

Ну не то, чтобы ковырять, просто раз уж есть возможность редактировать большие файлы, то просматривать их ещё проще. А так для меня текстовый редактор это универсальный инструмент и должен работать для всего. Скажем ISO открыть и в hex поисследовать, что там где лежит (HEX это тоже текст, поэтому не вижу тут противоречий, просто редакируется не исходный файл, а его интерпретация, но по сути любая кодировка это интерпретация байтов).

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

Идею я использую и для пайтона и для Rust и для Kotlin. Согласен, что из этих языков на Java писать сложней всего без хорошей поддержки IDE, но это не значит, что для других языков эти фичи бесполезны.

Legioner ★★★★★
()

Мне интересно, кто как больше всего применяет и редакторы кода.

В среде разработки ПО я использую почти каждый день:

  1. Самосоздание последовательности сборки файлов проекта (мэйкфайлов).
  2. Пошаговый отладчик с возможностью просмотра переменных и установки точек останова.
  3. Взаимодействие с подключаемыми базами данных для наблюдения их содержимого в отладчике.
  4. Взаимодействие с Интернет-обозревателями с возможностью перехода между кодом и его отображением на странице в отладчике.
  5. Поиск использования переменных, функций, методов и классов по исходному коду. Замена одного названия на другое. Вывод списка методов для обьектов класса.
  6. Возможность подключения статического анализатора кода.
  7. Встроенная помощь по ключевым словам из кода.
  8. Возможность ведения проектов на разных языках программирования из единой среды разработки.

Всем моим пожеланиям полностью соответствует «Нетбинс» из «Убунты - 20.04», установленный из снап-пакета (по-нормальному через «apt-get install netbeans» у меня не вышло установить, возможно, у кого-то из вас получится, тогда напишите как это сделпли прямо тут).

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

Можно

Всё равно ЯННП. Типа оно показывает определение не в отдельном табе, а в каком-то динамическом сплите? Так это же дефолтное поведение в любом «текстовом» редакторе, банально в vim и emacs так.

no-such-file ★★★★★
()
Ответ на: комментарий от no-such-file

Всё равно ЯННП. Типа оно показывает определение не в отдельном табе, а в каком-то динамическом сплите? Так это же дефолтное поведение в любом «текстовом» редакторе, банально в vim и emacs так

А теперь ты объясни мне, какими кнопками это делается в любом текстовом редакторе.

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

миллиарды пользователей на земле

Вы сильно преувеличиваете экспансию майкрософта и ПК-платформы. Для миллиардов людей, особенно в Латинской Америке, Африке, Южной Азии, первый компьютер — это дешёвый мобильник. А ПК видели в лучшем случае в школе, да и тот с линуксом и игрушками, где там в игрушках хоткеи?

приходится считаться

Ну да, давайте ещё с шиндузятниками считаться, или с пользователями мокроохвеса. То-то в цивилизованном мире документы уже в .pdf выкладывают, а не в .doc — зачем так делать, ведь .pdf редактировать неудобно и и так у всех вёрд стоит или хотя бы LibreOffice/Google Docs? ;)

в DE мы работаем так, а в Vi для тех же действий мы делаем эдак

А зачем запускать для Vi DE, когда есть фреймбуферная консоль?

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

какими кнопками это делается в любом текстовом редакторе

Ну в emacs делается через show-definition. Сплитит и показывает определение. Как бы это вообще не вопрос, не понимаю почему сплит так поразил твоё воображение.

Я уж не говорю о том, что эта фича доступна 1:1 через lsp-ui-mode-peek-find-references

no-such-file ★★★★★
()
Последнее исправление: no-such-file (всего исправлений: 1)
Ответ на: комментарий от Legioner

Автоматическое сохранение изменений при выходе из программы без дополнительных вопросов (не в оригинальные файлы, а во «временные» файлы)

Vim подходит! И не только при выходе, а вообще во время работы.

Плагин с шестнадцатеричным редактором тоже наверняка есть.

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

Тьфу, Мы-то думали — речь о лесенке, когда небольшие фреймы соответствующих файлов с кодом выстраиваются по иерархии вызовов А тут реально сплит какой-то. Где же Мы её видели тогда?

mertvoprog
()
Ответ на: комментарий от no-such-file

Ну в emacs делается через show-definition. Сплитит и показывает определение. Как бы это вообще не вопрос, не понимаю почему сплит так поразил твоё воображение

Да, та фича, которая в VS Code, весьма похожа на lsp-ui-peek (я же могу в активном режиме подглядывания переключаться по вкладкам и редактировать сорцы, да?). А вот та, которая в VS, уже дргуая, поскольку позволяет проходить рекурсивно и сохранять историю — это нереально удобно для понимания незнакомого кода.

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

проходить рекурсивно и сохранять историю

Опять я не понимаю в чём прикол. Это же везде так, не?

Вообще, если уж приспичило строить граф взаимосвязей в коде, то можно просто сделать доку в org-mode, которая будет отражать иерархию кода и напихать туда ссылок с пояснениями, uml, тасками из жиры и т.д.

PS: вообще ИМХО эти фичи «навигации» по коду в IDE просто ad hoc костыли, потому что там нет ни удобного обобщённого сплита, ни обобщённого mark-ring, ни банального grep по коду. В 90% в том же emacs можно обойтись без специализированных фич, просто используя сплит, метки и grep. Ну ещё occur.

no-such-file ★★★★★
()

Чтобы не тормозил.

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

Чтоб редактировать можно было эффективно. Все, остаются vim и neovim

Не могу вспомнить, чтобы в VS Code у меня появлялась мысль «боже, как же я неэффективно редактирую-то». Вот в Qt Creator возникала, но на то она и сырая наколенная поделка.

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

У них у обоих эргономика notepad.exe, предлагаю принять ее за 0.

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