LINUX.ORG.RU

История изменений

Исправление alysnix, (текущая версия) :

В данном случае вы разработали новый tools /IDE/. Скорее всего в IDE ничего инновационного не будет.

не выкладываю в основном потому, что не считаю код «доведенным до кондиции».

я начал делать эту иде по двум причинам.

  1. было свободное время, и хотелось заняться чем-то не только интересным, но и полезным.

  2. хотелось написать что-то оконное для линуха, используя wxWidgets.

  3. Не нашел ни одной ide, которую считал бы удобной для себя. Везде были какие-то недостатки, что прямо просились быть исправленными, но лезть в их реп, коммитить и заниматься дискуссиями с авторами не хотелось. форкать для таких именений - нет смысла, поскольку тогда придется терять будущие наработки авторов и вести проект самому.

  4. Были какие-то смутные подозрения, что ide может быть простым, и в то же время удобным для навигации по коду, работе с ошибками и проектами.

  5. Долгое время перед этим работал в Codeblocks,и он меня достал. Там нет поддержки гита, неудобная навигация по ошибкам, собственный парсер плюсов-который в силу простоты не мог нормально автокомплитить и искать декларации и реализации, неудобный интерфейс вообще и все такое. Хотел было с ними связаться чтобы покоммитить им, но посмотрел исходники… увидел что там такие навороты… и понял, что разбираться неохота.

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

чем отличается от CodeBlocks например.

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

-лифтинг опасных варнингов в ошибки - типа невозврата результата из функции.

-разметка варнингов/ошибок по признаку принадлежности их к проекту или внешнему к проекту коду.

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

-clang парсер, для автокомплита и прочей семантической работы.

ну и так далее.

каких фич пока нет.

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

  • рефакторинг. понятно как делать, но в силу не такой уж постоянной необходимости, хотя порой и хочется, пока не сделано.

  • ну еще… форматирование кода может быть, но есть внешние тулзы для этого вообще-то.

  • ну может подсветку привязать к clang парсеру, и выделять типы другим цветом.

есть только один трабл, что мне покоя не дает.

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

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

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

Исходная версия alysnix, :

В данном случае вы разработали новый tools /IDE/. Скорее всего в IDE ничего инновационного не будет.

не выкладываю в основном потому, что не считаю код «доведенным до кондиции».

я начал делать эту иде по двум причинам.

  1. было свободное время, и хотелось заняться чем-то не только интересным, но и полезным.

  2. хотелось написать что-то оконное для линуха, используя wxWidgets.

  3. Не нашел ни одной ide, которую считал бы удобной для себя. Везде были какие-то недостатки, что прямо просились быть исправленными, но лезть в их реп, коммитить и заниматься дискуссиями с авторами не хотелось. форкать для таких именений - нет смысла, поскольку тогда придется терять будущие наработки авторов и вести проект самому.

  4. Были какие-то смутные подозрения, что ide может быть простым, и в то же время удобным для навигации по коду, работе с ошибками и проектами.

  5. Долгое время перед этим работал в Codeblocks,и он меня достал. Там нет поддержки гита, неудобная навигация по ошибкам, собственный парсер плюсов-который в силу простоты не мог нормально автокомплитить и искать дефиниции и реализации, неудобный интерфейс вообще и все такое. Хотел было с ними связаться чтобы покоммитить им, но посмотрел исходники… увидел что там такие навороты… и понял, что разбираться неохота.

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

чем отличается от CodeBlocks например.

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

-лифтинг опасных варнингов в ошибки - типа невозврата результата из функции.

-разметка варнингов/ошибок по признаку принадлежности их к проекту или внешнему к проекту коду.

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

-clang парсер, для автокомплита и прочей семантической работы.

ну и так далее.

каких фич пока нет.

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

  • рефакторинг. понятно как делать, но в силу не такой уж постоянной необходимости, хотя порой и хочется, пока не сделано.

  • ну еще… форматирование кода может быть, но есть внешние тулзы для этого вообще-то.

  • ну может подсветку привязать к clang парсеру, и выделять типы другим цветом.

есть только один трабл, что мне покоя не дает.

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

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

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