Здравствуйте, alex_public, Вы писали:
_>Здравствуйте, PSV100, Вы писали:
PSV>>Кстати, почему то про IDEA не вспомнили, у них тоже какой-то плагин есть.
_>Мы пробовали. Всё же IDEA — для Java и это чувствуется. ))) Сейчас уже не помню в деталях почему его отбросили, но вердикт был такой: идеальная среда для Java, но для C++ не то совсем.
да, да. "реальная история". вот у меняы появился проект на яве. я попробовал эклипс — лет десять назад юза его для явы. что-то зашкварилось там, попробовал нетбинс — он вообще не рабочий (на самом деле может и ок, но он шкварится на перезапусках томката), перешел на идею (и её я юзал лет десять назад). так вот новая идея — это шаг на 0. кроме модного иОС интерфейса я не нашел там ничего по сравнению с идей 7, или что там было десять лет назад. Не, правда, у меня был шок. она не умеет ничего (шок как у человека впервый раз севшего за вим). не удобно, нубу. а я то ждал одно кнопки которая зарефакторит весь код. и сделает всё как я хочу. наивно, да. но именно этого я ожидал, при таких то возможностях.
что до с++ — мне нужен просто редактор, привычный, как фар с колорером. но ещё и сбилдом и с подсветкой ошибок. и чтобы не мешал.
поэтому пока студия. (лень мне пилить cmake под свой проект). пока студия. можно жить.
только расскажите мне как отключить подстановку совсем левых подсказок интеллисенса.
не приятно кода ты пишишь o.d , а вылазит какой-нить дикий o.SOME_CRAZY_FUNCTION.
откуда она это берёт?
извените накипело.
а так хотелось бы редактор который прозрачно инлайнит инклюды, без табов и прочей. даже автодополнение не очень нужно. -=)
Здравствуйте, alex_public, Вы писали:
_>Здравствуйте, SleepyDrago, Вы писали:
SD>>Это уже интересно А расскажите-ка пожалуйста простым пользователям VS чего у них нет. Так сказать на личных примерах.
_>Нууу тут можно много говорить. Для начала хотя бы зайдите в настройки подсветки синтаксиса C++ в VS, Эклипсе и Нетбинсе. И сравните количество сущностей, которым можно назначить разные цвета. Это так сказать простейший пример из самого базового. А дальше там уже много можно говорить про навиагацию, форматирование, автодополнение, рефакторинг...
Так форум для того и нужен Давайте подробнее про
>навигацию, форматирование, автодополнение, рефакторинг...
Re[4]: Нормальный редактор для C++ - существует ли?
Здравствуйте, yatagarasu, Вы писали:
Y>что до с++ — мне нужен просто редактор, привычный, как фар с колорером. но ещё и сбилдом и с подсветкой ошибок. и чтобы не мешал.
Y>извените накипело.
Y>а так хотелось бы редактор который прозрачно инлайнит инклюды, без табов и прочей. даже автодополнение не очень нужно. -=)
Здесь гуру общего рецепта счастья не выдали, его нет, у каждого лишь свои мелкие радости.
А в целом, тема получилась результативной, во всяком случае, для меня. Я приятно удивлён Нетбинсом. Я раньше думал, что премьер-министр это Эклипс с его CDT после студии-президента. А оказывается и оппозиция вполне серьёзна.
Всё-таки не на пустом месте пару лет назад в кулуарах JEdit-а обсуждали возможность прикрутить парсер нетбинса. Правда были две проблемы: он основан на ANTLR, якобы с не очень эффективным кодом для разбора, и оторвать его от нетбинса очень тяжело, что, скорее всего, и поставило крест на задумке.
А так, проблему можно решать двумя путями. Первый — это упрощение процесса разработки. Пример на своей шкуре. У нас реализована своя наколенная скриптовая система, с элементарным алгоритмическим язычком по Lua-мотивам с небольшими элементами декларативных описаний. В системе всего лишь несколько десятков функций для "всех случаев", т.е. всё заточено под конкретную задачу. Для разработки нужен лишь блокнот, часто "разрабатывают" прикладную логику и конфигурируют систему те, кто к программированию имеет отделенное отношение, те же администраторы. Для "продвинутых" — хороший удобный редактор, в котором настроили синтаксический разбор с подсветкой и правилами фолдинга (заточенные для себя, а не только так, как реализовали разработчики IDE), а также другие параметры для отступов, выравниваний и прочего форматирования, и список функций добавлен для системы автокомплита — это всё, что нужно (ну ещё вызов внешних своих тулсов и обработка их результатов). Даже подсказка по параметрам функций особо не нужна — настраиваются свои "сниппеты" как в TextMate: набрал ss клацнул tab получил "subsrt(string, pos, count)", где три параметра выделены и сразу всё видно, курсор на первом, его ввел и клацнул tab — прилетел ко второму и т.д.
После такой "разработки" переключаться на C++, жабу и пр. весьма тошно. В геймдеве популярность Lua, Squirrel т.д. не на пустом месте возникла.
Жаль, что надеяться на упрощение самого языка в C++ — это фантастика, огромный и крайне взрывоопасный С++-шар хоть и медленно, но всё же раздувается и раздувается с новыми стандартами. Если бы гугловский Go заимел бы эффективный рантайм, полиморфизм на уровне типов (кроме парочки сегодняшних встроенных типов, но это вроде обещают), да добавить бы к нему мета-программирование в виде макро-функций, как это пытаются сейчас сделать в Скале, но на основе синтаксиса от MetaLua — то в некоторых моментах C++ подвинулся бы. И всё-равно в таком бы виде Go своих ближайших "конкурентов" — имеющийся D и новый мазиловский Rust — по простоте порвал бы вместе с Тузиком. При этом был бы не менее эффективным (если не более), и AST-пляски реализовать для него гараздо проще.
Но это всё мечты. А сложность языка — реальное западло. Ребят из JetBrains Скала задрала своей магией, даже они не могут реализовать нормальный разбор, особенно семантический. Не выдержали, решились даже на свой Kotlin.
И второй путь. Нужны "мозги" от теперешних IDE как отдельный продукт. Монстро-универсальность и мега-интеграция уже показали свои проблемности.
Взять самый элементарный пример, который первым в голову стукнул. Я в редакторе очень привык к такой штуке: нажал Ctrl-Enter — выполняется анализ текущей строки: если строка начинается со звёздочки или с "/*", "/**", как внутри JavaDoc — дублируем звёздочку на следующей строке, если с нумерации вида "1. ", "а) " и т.п. — увеличиваем номер для новой строки, и т.д., при этом соблюдаем форматирование, отступы и пр. Удобно, и не нужны 20 шоркатов. Или Ctrl-E Ctrl-Enter — дублируем строку, и если внутри есть нумерация, то инкрементируем: из строки вида "var1 = val1" получим новую "var2 = val2". Как реализовать такие удобняшки в Эклипсе? Ни разработчики JDT, ни разработчики CDT не позаботились. Искать сторонний плагин, который всё равно не покроет всех хотелок? Значит писать свой. Но вместо элементарного небольшого текстового файла, как для нормальных редакторов, мне нужно заниматься разработкой полноценного Java-проекта как плагина для Эклипс, долго вкуривая мутное монстро-API.
Это только элементарные вещи для текстового редактора, работа с альтернативными отладчиками, профайлерами, всякими анализаторами — отдельная мутная песня.
Ох если бы были доступны отдельно мозги от того же Нетбинса, оформленные самостоятельным проектом, даже пусть в виде готовых бинарников. Запустил какой-нибудь процесс, он постоянно и оперативно сам себе работает, как сервер эмакса, например. Хошь свой интерфейс для любимого редактора делай, хочешь через консоль работай и т.д.
Здравые идеи в этом направлении уже есть. Например, весит процесс/демон/служба fossil — как система контроля версий/багтрекалка/вики — коннектся себе, работай (правда пока только через консоль или броузер, но теоретически уже сейчас можно что-то наваять, кому нужно). Или в eclim-е пытаются мучать эклипс в таком стиле.
Имхо, вполне реально можно ожидать такой шаг от JetBrains. Работают там вполне грамотные люди, которые тоже "страдают", даже свой промышленный язык имеют возможности запилить. Имя они себе сделали, уже могут позволить маркетинговое стимулирование через бесплатные продукты, фактически зарабатывают только в интерпрайз-секторе. Если сделают "IDEA-Server", то, имхо, саму IDE он "не убьет", наоборот — лишняя мотивация, в том числе и коммерция здесь возможна.
Сорри за фактически офтоп, но у самого накипело по самые ...
Re[3]: Нормальный редактор для C++ - существует ли?
Здравствуйте, alex_public, Вы писали:
_>Здравствуйте, PSV100, Вы писали:
PSV>>Кстати, почему то про IDEA не вспомнили, у них тоже какой-то плагин есть.
_>Мы пробовали. Всё же IDEA — для Java и это чувствуется. ))) Сейчас уже не помню в деталях почему его отбросили, но вердикт был такой: идеальная среда для Java, но для C++ не то совсем.
Очень может быть. Похоже, что плагин пилят сторонние энтузиасты, и не рекламируют что-то его, как другие продукты.
А так, кроме того, что здесь разобрали, попадалось что-то на глаза, но как правило поверх ctags. Также вспоминается:
— FoxToolkit. У них был какой-то свой редактор, который поражал своей реактивностью, как в свое время блокнот Bred2 на винде. Но с русским языком никак не работал, и я не помню, было ли что-то там прикручено, или это просто блокнот с подсветкой (но вроде что-то было).
— Ultimate++. У них была какая-то IDE, типа наколенного QtCreator-а, со своей парсилкой. Но вроде они честно заявляли, что от макросов с шаблонами счастья не ждать. Но может сейчас что-то вдруг...
Re[11]: Нормальный редактор для C++ - существует ли?
Здравствуйте, SleepyDrago, Вы писали:
SD>Так форум для того и нужен Давайте подробнее про >>навигацию, форматирование, автодополнение, рефакторинг...
Так зачем мне это? ) Я же процента с "продаж" Нетбинса не получаю. ))) Я свою оценку дал, а вы поставьте его себе и проверьте сами мои слова — самый лучший способ. )))
А вообще, если всё же попытаться кратко описать, то можно сказать что у всех трёх продуктов одинаковая функциональность, но с разной "глубиной" этой функциональности. Т.е. допустим класс вьюер в VS умеет показывать N сущностей, а в Netbeans'е N+5. Тоже самое с настройками автоформатирования, автодополнением, функциями рефакторинга и т.п.
Если вот зададите конкретный узкий вопрос, то можно будет не полениться, открыть эти среды рядом и ответить. А в общем виде это тянет на большую статью с огромной табличкой, которую мне писать мягко говоря лень. )))
Re[5]: Нормальный редактор для C++ - существует ли?
Здравствуйте, PSV100, Вы писали:
PSV>А так, проблему можно решать двумя путями. Первый — это упрощение процесса разработки. Пример на своей шкуре. У нас реализована своя наколенная скриптовая система, с элементарным алгоритмическим язычком по Lua-мотивам с небольшими элементами декларативных описаний. В системе всего лишь несколько десятков функций для "всех случаев", т.е. всё заточено под конкретную задачу. Для разработки нужен лишь блокнот, часто "разрабатывают" прикладную логику и конфигурируют систему те, кто к программированию имеет отделенное отношение, те же администраторы. Для "продвинутых" — хороший удобный редактор, в котором настроили синтаксический разбор с подсветкой и правилами фолдинга (заточенные для себя, а не только так, как реализовали разработчики IDE), а также другие параметры для отступов, выравниваний и прочего форматирования, и список функций добавлен для системы автокомплита — это всё, что нужно (ну ещё вызов внешних своих тулсов и обработка их результатов). Даже подсказка по параметрам функций особо не нужна — настраиваются свои "сниппеты" как в TextMate: набрал ss клацнул tab получил "subsrt(string, pos, count)", где три параметра выделены и сразу всё видно, курсор на первом, его ввел и клацнул tab — прилетел ко второму и т.д. PSV>После такой "разработки" переключаться на C++, жабу и пр. весьма тошно. В геймдеве популярность Lua, Squirrel т.д. не на пустом месте возникла.
Мне всё же не нравятся языки без статической типизации для сложных задач. Вот для очень коротеньких скриптов — это да, полезно. ) И тут мой выбор за Питоном. Хотя для встраивания Lua вроде попроще говорят.
PSV>Жаль, что надеяться на упрощение самого языка в C++ — это фантастика, огромный и крайне взрывоопасный С++-шар хоть и медленно, но всё же раздувается и раздувается с новыми стандартами. Если бы гугловский Go заимел бы эффективный рантайм, полиморфизм на уровне типов (кроме парочки сегодняшних встроенных типов, но это вроде обещают), да добавить бы к нему мета-программирование в виде макро-функций, как это пытаются сейчас сделать в Скале, но на основе синтаксиса от MetaLua — то в некоторых моментах C++ подвинулся бы. И всё-равно в таком бы виде Go своих ближайших "конкурентов" — имеющийся D и новый мазиловский Rust — по простоте порвал бы вместе с Тузиком. При этом был бы не менее эффективным (если не более), и AST-пляски реализовать для него гараздо проще.
Я бы уже сейчас перешёл на D, если бы вокруг него существовала необходимая инфраструктура. Ну или если бы они хотя бы сумели наладить какой-то вид линковки C++ (для C у них есть) библиотек.
А Go и Rust — странные какие-то. )))
PSV>И второй путь. Нужны "мозги" от теперешних IDE как отдельный продукт. Монстро-универсальность и мега-интеграция уже показали свои проблемности. PSV>Взять самый элементарный пример, который первым в голову стукнул. Я в редакторе очень привык к такой штуке: нажал Ctrl-Enter — выполняется анализ текущей строки: если строка начинается со звёздочки или с "/*", "/**", как внутри JavaDoc — дублируем звёздочку на следующей строке, если с нумерации вида "1. ", "а) " и т.п. — увеличиваем номер для новой строки, и т.д., при этом соблюдаем форматирование, отступы и пр. Удобно, и не нужны 20 шоркатов. Или Ctrl-E Ctrl-Enter — дублируем строку, и если внутри есть нумерация, то инкрементируем: из строки вида "var1 = val1" получим новую "var2 = val2". Как реализовать такие удобняшки в Эклипсе? Ни разработчики JDT, ни разработчики CDT не позаботились. Искать сторонний плагин, который всё равно не покроет всех хотелок? Значит писать свой. Но вместо элементарного небольшого текстового файла, как для нормальных редакторов, мне нужно заниматься разработкой полноценного Java-проекта как плагина для Эклипс, долго вкуривая мутное монстро-API. PSV>Это только элементарные вещи для текстового редактора, работа с альтернативными отладчиками, профайлерами, всякими анализаторами — отдельная мутная песня.
Кстати, Visual Assist же по идее живёт сам по себе... Правда интерфейс он предоставлят только для Visual Studio...
Re[12]: Нормальный редактор для C++ - существует ли?
... _>Если вот зададите конкретный узкий вопрос, то можно будет не полениться, открыть эти среды рядом и ответить. А в общем виде это тянет на большую статью с огромной табличкой, которую мне писать мягко говоря лень. )))
в последний раз когда я его ставил (это было давненько) оно просто умерло. Не надо мне огромных статей и табличек — мне нужен пример который лично тебя заставил решиться на смену. 1-2 скриншота это вопрос пары секунд. Всегда можно проиллюстрировать не на секретном коде, просто открой буст какой-нибудь и обведи на картинке.
Re[6]: Нормальный редактор для C++ - существует ли?
Здравствуйте, alex_public, Вы писали:
_>Мне всё же не нравятся языки без статической типизации для сложных задач. Вот для очень коротеньких скриптов — это да, полезно. ) И тут мой выбор за Питоном. Хотя для встраивания Lua вроде попроще говорят.
Мне тоже кажется, что Lua попроще для внедрения, особенно Lua-Jit с его FFI, и в целом приятная штука.
Я в своей практике скриптинг использовал для решения как раз локализованных задач (ну кроме всяких вспомогательных, шелл-скриптов и пр., а также довелось и с фокспро/клиппер-ом повозиться, не говоря об SQL). Причём это разработка иного плана, чем, например, возня в Питоне/Руби для каких-нибудь Джанго/Рельс, т.е. всё максимально заточено конкретно под свои потребности, когда есть такая возможность — невозможно это счастье описать словами. Я лишь хотел подчеркнуть момент о лёгкости в разработке.
А так да, в динамике/статике есть свои плюсы/минусы, и холивары по этому поводу бесконечны. Но я уже глубоко убедился в том, что во всех лагерях полно своих мифов: и жаба не дает счастья, несмотря на все чудеса от IDE, и в скриптинге вполне реально можно писать надёжные программы, которые случайно не будут складывать слонов с попугаями. И вполне реально можно опровергнуть миф, что на динамике легко разработать, а сопровождать тяжело. На Эрланге имеют вполне достаточно крупные системы, и вводить статику там вроде не собираются.
_>Я бы уже сейчас перешёл на D, если бы вокруг него существовала необходимая инфраструктура. Ну или если бы они хотя бы сумели наладить какой-то вид линковки C++ (для C у них есть) библиотек.
_>А Go и Rust — странные какие-то. )))
Мне кажется, что сырость D не закончится никогда. Это какой-то полигон для fun-отдушины для всяких товарищей а-ля Александреску, промышленной платформы не будет. И D, и Rust — по навороченности от C++ не далеко отстали, а в Rust-е похоже хотят и С++ переплюнуть (но в нём чувствуются здравые мысли). А меня, как человека, нюхнувшего пороха в разных лагерях: "промышленнизм/ынтерпрайз" и "лёгкость/простота" — к таким простым и эффективным решениям как Go — теперь уже как магнитом тянет (но ему всё-таки не хватает ряда вещей, кроме того, о чём я писал раньше, ему бы какой-нибудь паттерн-матчинг, уникальные типы или уникальные указатели и пр.).
_>Кстати, Visual Assist же по идее живёт сам по себе... Правда интерфейс он предоставлят только для Visual Studio...
Мне кажется, что он без студии жить не сможет, иначе был бы давно прикручен в виме/эмаксе. Нужны вполне самостоятельные "мозги", причём удобно расширяемые, в идеале с каким-нибудь "стандартом" в API. Скорее всего, кто будет пионером, тот и задаст стандарт, как протокол memcached.
Кстати, я давненько читал какую-то статью одного чудака. Он интересно эмакс гонял вместе со студией: основная работа была в эмаксе, по клавише запускал скрипт, который переключался на окно студии, посылал виндовские сообщения (как я понял, эмулировал нажатия клавиш), чтобы студия переключилась на нужный файл, перекинула курсор и выплюнула автокомплит, вводилось что нужно и возвращаемся в эмакс. Причём это его долго устраивало, пока не перешёл на новую студию, которая стала тормозить: долго втыкала, что файл изменен внешне.
Вот такая наркота эти эмаксы
Re[6]: Нормальный редактор для C++ - существует ли?
И у меня по ходу дела небольшой вопросик. А как вы у себя уживаетесь с интерфейсом Нетбинса?
Речь не об управлении средой (хотя, честное слово, после вима/эмакса/JEdit/Sublime любая IDE не удобна), а о шрифтах. Нетбинс, как и JEdit, живёт поверх жабского свинга, где в отличие от Эклипса с SWT, своя прорисовка шрифтов вместо системного рендеринга. И это реальная проблема, особенно под линухом, а в новом JavaFX со щрифтами вообще жопа. Многие забивают на это дело, ибо глубокая настройка монстро-IDE — это ещё то удовольствие (как минимум с цветами).
На винде это не так ощутимо, но я заметил, что при долгой работе в JEdit-е глаза ощутимо устают, больше чем в других редакторах. Я провёл реальное "расследование" — сравнивал увеличенные картинки прорисовки символов: есть небольшая разница в сглаживании и это корень зла. В результате, линии символов/букв рисуются несколько толще, насыщеннее, и в целом картинка получается более резкая, не такая мягкая, как в других редакторах. Это едва заметно на винде, на темном фоне разница ощутима больше. Кроме того, в свинге своё понятие высоты текста. У меня текст выводится несколько мелковато, причём согласно "замерам" по пикселям высота такая же, как в других редакторах, но из-за кривого сглаживания воспринимается как-то мельче. А следующий шаг в размере сразу даёт слишком большое увеличение, с ещё большими дефектами. И это всё проявляется на разных машинах с разным железом/мониторами.
Могу поделиться своими рецептами.
Лучшим шрифтом оказался Consolas, со всеми остальными есть всегда какие-то дефекты (перепробовалось куча всякого), причём в других редакторах часто этих дефектов нет. В JEdit-е есть всякие настройки для рендеринга текста, реально полезная штука — настройка межстрочного интервала. Можно добавить 1-2 пикселя между строками, и картинка реально лучше. В Нетбинсе я такого не увидел (раньше).
Альтернативная цветовая схема реально облегчает жизнь, я перепробовал дохрена вариантов, вроде получилось уменьшить кривизну.
Очень хороший вариант для светлой темы: Solarized, популярный проект, наверное есть готовый порт и для Нетбинса. С ней лучше работать и вечером, чем с белым фоном. Также там есть и неплохая тёмная тема, но для меня оказалась несколько темноватой, нужно добавлять яркости в мониторе, но для меня это неприемлемо.
Для тёмной темы неплохой вариант: Bespin для TextMate. Есть тема с таким названием для NotePad++ — не то пальто.
Но в JEdit-е с ней не так приятно работать, как в других редакторах. Лучшим оказалась тема для вима: Atom, нейтральные приятные цвета, хорошо различимы, без всякой "ядовитости". При этом хорошо уживается рядом со светлым окружением, а также вполне нормально можно работать и днём, если нет яркого солнца в помещении. Эта тема поможет избавиться от гемороя в переключении со светлого на тёмное, чем страдают все IDE.
Также рекомендую такой Look-and-Feel: NimROD, его вроде можно подключить в Нетбинсе. На фоне альтернатив он поприятнее, в нём легко можно настроить цвета в тон цветовой схемы для текста, например, можно избавиться от светлых панелей вокруг темной области с текстом.
Со свингом уже боролись, и каким образом, или пока забили ?
прошу прощения за толику рекламы, но посмотрите HippoEDIT — это не IDE, больше быстрый редактор для программиста, но некоторые приятние функции есть:
— настраиваемая расскраска
— темплейты кода
— подсказки (CodeHints)
— поиск по chm
— хорошая интеграция внешних инструментов
— поддержка бинарных и скриптовых плагинов
и что не маловажно
— для ехUSSR бесплатен
— я помогу если че надо
Здравствуйте, SleepyDrago, Вы писали:
SD>в последний раз когда я его ставил (это было давненько) оно просто умерло. Не надо мне огромных статей и табличек — мне нужен пример который лично тебя заставил решиться на смену. 1-2 скриншота это вопрос пары секунд. Всегда можно проиллюстрировать не на секретном коде, просто открой буст какой-нибудь и обведи на картинке.
Не, так не выйдет. Я же говорю, там не одна мегафича из-за которой перешли, а 100 мелких улучшений у каждой известной фичи. Это надо или писать длинную детальную статью или лучше вообще ничего.
Вообще советую просто поставить и попробовать. Причём первым делом после установки зайти в настройки редактора — сразу многое станет ясно. )))
Re[7]: Нормальный редактор для C++ - существует ли?
Здравствуйте, PSV100, Вы писали:
PSV>Мне кажется, что сырость D не закончится никогда. Это какой-то полигон для fun-отдушины для всяких товарищей а-ля Александреску, промышленной платформы не будет. И D, и Rust — по навороченности от C++ не далеко отстали, а в Rust-е похоже хотят и С++ переплюнуть (но в нём чувствуются здравые мысли).
Мне кажется им многое подпортил C++11. Он дал довольно много вкусностей из набора D, оставим при этом всю мегаинфраструктуру старого C/C++.
PSV>А меня, как человека, нюхнувшего пороха в разных лагерях: "промышленнизм/ынтерпрайз" и "лёгкость/простота" — к таким простым и эффективным решениям как Go — теперь уже как магнитом тянет (но ему всё-таки не хватает ряда вещей, кроме того, о чём я писал раньше, ему бы какой-нибудь паттерн-матчинг, уникальные типы или
уникальные указатели и пр.).
Ммм, Оберон?
PSV>Мне кажется, что он без студии жить не сможет, иначе был бы давно прикручен в виме/эмаксе. Нужны вполне самостоятельные "мозги", причём удобно расширяемые, в идеале с каким-нибудь "стандартом" в API. Скорее всего, кто будет пионером, тот и задаст стандарт, как протокол memcached.
Я сомневаюсь что использует VA использует VS для какой-то функциональности. Но без неё действительно не живёт — скорее всего бизнес-решение такое... )
PSV>Кстати, я давненько читал какую-то статью одного чудака. Он интересно эмакс гонял вместе со студией: основная работа была в эмаксе, по клавише запускал скрипт, который переключался на окно студии, посылал виндовские сообщения (как я понял, эмулировал нажатия клавиш), чтобы студия переключилась на нужный файл, перекинула курсор и выплюнула автокомплит, вводилось что нужно и возвращаемся в эмакс. Причём это его долго устраивало, пока не перешёл на новую студию, которая стала тормозить: долго втыкала, что файл изменен внешне.
Re[7]: Нормальный редактор для C++ - существует ли?
Здравствуйте, PSV100, Вы писали:
PSV>И у меня по ходу дела небольшой вопросик. А как вы у себя уживаетесь с интерфейсом Нетбинса?
Эээ, вы про всякие контролы (кнопки, тулбары, менюшки, диалоги) или про основное окно редактора?
Если про всякие контролы, то не знаю. Я там ничего не трогал. Выглядит оно конечно не особо, но я туда и не смотрю обычно. В общем тут как-то вообще вопрос не вставал.
Что касается основного окна редактора, то тут настроен свой шрифт и свои цветовые схемы (которые под язык уже соответственно). Правда настроены они не из-за каких-то проблем, а просто потому что дефолтный шрифт мне был чуть маловат, а цветовая настройка вообще другая нужна. Ну и тут я как бы никаких проблем с отображением не вижу. Но т.к. эти настройки были сделаны сразу же, то возможно я просто не успел увидеть какие-то баги с дефолтными настройками.
Да, работаю с Нетбинсом в основном из Windows, с настроенным ClearType, на большом качественном мониторе...
Re[8]: Нормальный редактор для C++ - существует ли?
Здравствуйте, alex_public, Вы писали:
_>Эээ, вы про всякие контролы (кнопки, тулбары, менюшки, диалоги) или про основное окно редактора?
Про сам текстовый редактор, основная область вывода текста. Возможно и в интерфейсных контролах тоже не всё ахти, но там небольшой шрифт и как-то назаметно. И проблему я не сразу ощутил. В общем, нормальный шрифт и менее контрастная цветовая схема в свинге крайне полезны, особенно в линухе. В инете не мало инфы про кривости свинга.
_>Если про всякие контролы, то не знаю. Я там ничего не трогал. Выглядит оно конечно не особо, но я туда и не смотрю обычно. В общем тут как-то вообще вопрос не вставал.
Я обычно отключаю всё лишнее, всякие консоли и спец-окна появляются по требованию. И весь интерфейс редактора раскрашиваю в тона цветовой схемы текста, обычно работаю в полноэкранном режиме — приятно, прям как вим/эмакс.
_>Да, работаю с Нетбинсом в основном из Windows, с настроенным ClearType, на большом качественном мониторе...
Свинг, похоже, настройки винды игнорирует, включая подгонку ClearType. Возможно включение ClearType в винде заставляет Нетбинс включить у себя свое сглаживание. В JEdit-е всё настраивается независимо от настроек винды.
Re[2]: Нормальный редактор для C++ - существует ли?
Здравствуйте, Kefir, Вы писали:
K>прошу прощения за толику рекламы, но посмотрите HippoEDIT — это не IDE, больше быстрый редактор для программиста, но некоторые приятние функции есть:
Я посмотрел. Очень интересный редактор. Т.е. это конечно всё равно не то что обсуждалось в этой темке (синтаксический анализ проекта он не делает), но всё равно крайне интересный.
Сам редактор видимо из класса Notepad++, Sublime, jedit. По скорости чуть уступает Notepad++ (хотя тут по сути все быстры), но по возможностям заметно превосходит. Особенно порадовала панель навигации по файлу наверху. Я такое видел только у полноценных IDE. Просто супер. И функция аналог "перейти к определению" из IDE тоже работает замечательно, насколько возможно при навигации по одиночному файлу.
В общем это пожалуй самый лучший редактор одиночного файла, что я видел. Думаю перейти на него с Notepad++, который служил мне для этого раньше. Для больших проектов конечно не хватает навигации по всему коду и библиотекам, а для всего остального выглядит отлично.
Хотя возможно я ещё спешу и не успел разглядеть каких-то важные плюсов или минусов.
K>- настраиваемая расскраска
Ага, все нужные сущности есть.
K>- поиск по chm
Отлично работает. Жаль только нельзя назначить один шорткат на несколько файлов. И что бы оно открывало при этом только один, где есть нужная информация. У Зеуса так работало. )
K>— хорошая интеграция внешних инструментов
Действительно удобно сделано. Хотя для того что бы быть "совсем как ide" надо бы ещё что-то типа конфигураций настраиваемых (ну типа Release, Debug и т.п.) завести.
K>и что не маловажно K>- для ехUSSR бесплатен
Это здорово. Кстати, а почему тогда нет русской локализации? )))
Здравствуйте, alex_public, Вы писали:
_>Практически уверен что получу отрицательный ответ (т.к. если бы существовал положительный, то скорее всего я бы про него уже давно знал), но всё же потрачу время на написание... А вдруг?
... _>И всё. ) Вот интересно, существует ли что-то подобное в природе? Только подразумевается что это что-то, что можно скачать и просто использовать, а не хрень, которую ещё полгода затачивать.
KDevelop. Только это IDE, и я неуверен, что его можно собрать под windows. Парсер жрет все.
Re[3]: Нормальный редактор для C++ - существует ли?
Здравствуйте, alex_public, Вы писали:
_>Т.е. это конечно всё равно не то что обсуждалось в этой темке (синтаксический анализ проекта он не делает), но всё равно крайне интересный.
Ну это да. HippoEDIT и не задумывался как замена полновесному IDE — здесь очень сложно конкурировать с специализированным решением (тем более если решение уже есть давно на рынке). Это больше — универсальный редактор и просмотрщик кода. Если надо что то небольшое подправить, или какие скрипты написать. Хотя с 1.50 можно писать уже полноценные плагины, и специализировать под какой-то определенный язык программирования. Например, я сообираюсь добавить auto-completion плагин базированный на ctags — работы в принципе не много и охват языков сразу большой. Но опять же это не конкуренция с IDE.
_>Сам редактор видимо из класса Notepad++, Sublime, jedit. По скорости чуть уступает Notepad++ (хотя тут по сути все быстры), но по возможностям заметно превосходит. Особенно порадовала панель навигации по файлу наверху. Я такое видел только у полноценных IDE. Просто супер.
Это Navigation Bar, по аналогии с решением от Visual Assist, базированый на поиске меток в документе, описанных регулярными выражениями.
Еще там есть Hierarchy Bar (текущая стек областей видимости, не сильно полезно в с++ но больше для синтаксисов типа HTML) и
Overview Bar — есть пока только в Resharper, насколько я знаю. Minimap из Sublime это не то.
_>И функция аналог "перейти к определению" из IDE тоже работает замечательно, насколько возможно при навигации по одиночному файлу.
Да, это наверное Smart Navigate -> Alt+G (или Open Opposite?). Она много что умеет и зависит о контекста где вызвана.
_>В общем это пожалуй самый лучший редактор одиночного файла, что я видел. Думаю перейти на него с Notepad++, который служил мне для этого раньше. Для больших проектов конечно не хватает навигации по всему коду и библиотекам, а для всего остального выглядит отлично.
Ну, как я писал, я могу помочь с интеграцией ctags или чего-то похожего, а полноценную поддержку мне не осилить
Хотя специализированные парсеры конечно писать проще чем общие..
_>Хотя возможно я ещё спешу и не успел разглядеть каких-то важные плюсов или минусов.
Про минусы пишите.
K>>- поиск по chm _>Отлично работает. Жаль только нельзя назначить один шорткат на несколько файлов. И что бы оно открывало при этом только один, где есть нужная информация. У Зеуса так работало. )
Да, это интересная идея. Уже добавил, будет в обновленной 1.50 бете. Можно будет указать несколько файлов в одно поле, разделенных || (C:\a.chm || C:\b.chm) и будет проверять по порядку.
K>>— хорошая интеграция внешних инструментов _>Действительно удобно сделано. Хотя для того что бы быть "совсем как ide" надо бы ещё что-то типа конфигураций настраиваемых (ну типа Release, Debug и т.п.) завести.
Да можно, хотя какой то общий концепт пока не ясен. В принципе этого функционала можно добиться уже сейчас.
HippoEDIT поддерживает как инструменты привязанные к синтаксису так и инструменты вложенные в проект (в той же мере что и синтакс зависимые). Шоткаты из проекта перекрывают шоткаты языка. Так что можно сделать разные проекты для разных конфигураций.
Так же (с 1.50) можно задавать пользовательские переменные (global, workspace или project) и использовать их как параметры инструментов.
Можно написать простой скрипт плагин, который добавляет меню для переключения Tools или просто перехватывает команды.
K>>и что не маловажно K>>- для ехUSSR бесплатен
_>Это здорово. Кстати, а почему тогда нет русской локализации? )))
Ну справедливости ради, нет никакой локализации, а не только русской . Сделать нормальную локализацию, это тоже время. А выхлоп меньше чем от добавления какой то новой функциональной фичи. Это ж таки shareware, хоть и бесплатная для exUSSR.
Плюс, редактор то для программистов, и все термины из интерфейса в принципе должны быть понятны.
Re[4]: Нормальный редактор для C++ - существует ли?
Здравствуйте, Kefir, Вы писали:
K>Ну это да. HippoEDIT и не задумывался как замена полновесному IDE — здесь очень сложно конкурировать с специализированным решением (тем более если решение уже есть давно на рынке). Это больше — универсальный редактор и просмотрщик кода. Если надо что то небольшое подправить, или какие скрипты написать.
Ага, именно для этих целей у меня Notepad++. Наверное сейчас заменю его на ваш продукт. )
K>Хотя с 1.50 можно писать уже полноценные плагины, и специализировать под какой-то определенный язык программирования.
Не очень представляю что тут может быть ещё добавлено не превращаясь в IDE. Но интересно. Хотя... Интеграция с популярными системами контроля версий возможно была бы интересной.
K>Например, я сообираюсь добавить auto-completion плагин базированный на ctags — работы в принципе не много и охват языков сразу большой. Но опять же это не конкуренция с IDE.
Хех, как раз в этой темке обсудили что ctags не справляется с полноценным C++...
K>Ну, как я писал, я могу помочь с интеграцией ctags или чего-то похожего, а полноценную поддержку мне не осилить K>Хотя специализированные парсеры конечно писать проще чем общие..
Ну кстати с обработкой одиночного файла у вас же не плохо справляется. Пока единственный минус (по сравнению с монстрами делающими полный анализ) при подсветке по файлу, это то что нельзя настроить что бы делало серым неактивные (в данном контексте) области #ifdef/#else.
С навигацией тоже всё хорошо. Вот с автодополнением конечно всё хуже. )))
Так что в принципе, если попробовать своими силами, достаточно отработать полностью препроцессор (который не особо сложный) и далее на полученный мегабайтный исходник ваш текущий анализатор — для начала уже не плохо будет. Но это конечно тоже не просто и уже путь к полноценной IDE...
K>Про минусы пишите.
Я тут пока закопался в бизнес дела и пробую все эти продукты не в непосредственной работе, а на тестовых проектах. Так что пока возможно пропускаю всякие детали. Возможно через пару неделек смогу более подробно написать, уже попробовав в реальной работе.
K>Да, это интересная идея. Уже добавил, будет в обновленной 1.50 бете. Можно будет указать несколько файлов в одно поле, разделенных || (C:\a.chm || C:\b.chm) и будет проверять по порядку.
Ооо, супер. С такими фичами можно даже частично забывать про автокомплит.
У меня есть chm по всем нашим библиотекам, по c++ библиотеке и по OS API. И по самому проекту генерится с помощью doxygen.
Кстати, возможно стоило бы как-то автоматизировать интеграцию с ним? ) Т.е. такой замкнутый цикл. Ставим в настройках проекта галочку "генерировать документацию". И оно автоматом создаёт с помощью doxygen chm файл по проекту и добавляет его в хелп текущий?
Хотя это наверное перебор уже. )))
K>Да можно, хотя какой то общий концепт пока не ясен. В принципе этого функционала можно добиться уже сейчас. K>HippoEDIT поддерживает как инструменты привязанные к синтаксису так и инструменты вложенные в проект (в той же мере что и синтакс зависимые). Шоткаты из проекта перекрывают шоткаты языка. Так что можно сделать разные проекты для разных конфигураций. K>Так же (с 1.50) можно задавать пользовательские переменные (global, workspace или project) и использовать их как параметры инструментов. K>Можно написать простой скрипт плагин, который добавляет меню для переключения Tools или просто перехватывает команды.
Оо, инструменты на проект. Я как-то не заметил. Тогда в принципе ничего не надо добавлять. Единственно что хотелось бы в тулабре Tools выпадающий список, а не набор кнопок. А то у нас тут бывает по 10 конфигов разных на проект... )
K>Ну справедливости ради, нет никакой локализации, а не только русской . Сделать нормальную локализацию, это тоже время. А выхлоп меньше чем от добавления какой то новой функциональной фичи. Это ж таки shareware, хоть и бесплатная для exUSSR.
Это смотря какими инструментами пользоваться. У нас вся поддержка локализации в несколько строк выходит. Другое дело сами тексты. Но их можно поручить пользователям делать. )))
K>Плюс, редактор то для программистов, и все термины из интерфейса в принципе должны быть понятны.
Угу, в принципе перевод вообще не нужен. Просто Netbeans и Notepad++ у меня автоматом по русски говорят и я сразу заметил разницу. )))
Re[5]: Нормальный редактор для C++ - существует ли?
Здравствуйте, alex_public, Вы писали:
_>Не очень представляю что тут может быть ещё добавлено не превращаясь в IDE. Но интересно. Хотя... Интеграция с популярными системами контроля версий возможно была бы интересной.
Ну тот же языково-зависимый auto complete. Плагин не утяжеляет основное решение, а используется только теми кому надо. Но конечно его кто то написать должен Я пока для тяжелых языков не планировал. Может добавлю для скриптовых языков — мне надо самому для удобной разработки скриптовых плагинов в редакторе. Другой пример интеграция CVS (например Perforce) Вы уже упомянули. А если у CVS есть командный интерфейс, то это и достаточно просто.
K>>Например, я сообираюсь добавить auto-completion плагин базированный на ctags — работы в принципе не много и охват языков сразу большой. Но опять же это не конкуренция с IDE. _>Хех, как раз в этой темке обсудили что ctags не справляется с полноценным C++...
Та да, я читал. Но ctags это все же лучше чем ничего А писать свой синтаксический парсер для C++ я пока не планирую.
_>Ну кстати с обработкой одиночного файла у вас же не плохо справляется. Пока единственный минус (по сравнению с монстрами делающими полный анализ) при подсветке по файлу, это то что нельзя настроить что бы делало серым неактивные (в данном контексте) области #ifdef/#else.
Ну здесь, к сожалению надо уже "понимать" язык. Тем более, все равно, на базе только одного файла не выйдет. Надо парсить все дерево инклудов и тд.
HippoEDIT, в отличии от Scintilla based (Notepad++) редакторов не использует специализированных парсеров для разных языков. У его универсальный, динамический парсер настраиваемый с помощью "синтаксической схемы" языка. Так что с специализациями, типа разбор препроцессора, тяжело. Хотя можно написать плагин, который парсит только препроцессор С++ и "гасит" неактивные куски наложением соответствующего стиля.
У меня есть функция для показа Inactive Code (View->Editor) но она работает для документов со смешанными языками. Там гасятся части кода с языком (синтаксисом) отличным от текущего. Например, в HTML документе, если Вы в HTML то все скриптовые и css блоки будут неактивны.
_>Так что в принципе, если попробовать своими силами, достаточно отработать полностью препроцессор (который не особо сложный) и далее на полученный мегабайтный исходник ваш текущий анализатор — для начала уже не плохо будет. Но это конечно тоже не просто и уже путь к полноценной IDE... не думаю что все будет так просто. Проще все же плагин, который накладывает раскраску поверх. Основная проблема здесь — что работы до фига, а все равно IDE будет лучше
K>>Да, это интересная идея. Уже добавил, будет в обновленной 1.50 бете. Можно будет указать несколько файлов в одно поле, разделенных || (C:\a.chm || C:\b.chm) и будет проверять по порядку. _>Ооо, супер. С такими фичами можно даже частично забывать про автокомплит. _>У меня есть chm по всем нашим библиотекам, по c++ библиотеке и по OS API. И по самому проекту генерится с помощью doxygen. _>Кстати, возможно стоило бы как-то автоматизировать интеграцию с ним? ) Т.е. такой замкнутый цикл. Ставим в настройках проекта галочку "генерировать документацию". И оно автоматом создаёт с помощью doxygen chm файл по проекту и добавляет его в хелп текущий?
Это языково специфично — нужен плагин. А так: плагин на сохранение проекта запрашивает список файлов проекта, отдает их doxygen (это не сложно). В контекстном хелпе можно использовать переменные, определенные в проекте, как например путь к генеренному chm файлу, и искать по нему до поиска по источникам по умолчанию. Если будет надо, можно потом конкретно посмотреть.
Еще можно добавить Context Help item прямо в проект. Тогда его шоткат перекроет шоткат контекстной справки языка.
_>Оо, инструменты на проект. Я как-то не заметил. Тогда в принципе ничего не надо добавлять. Единственно что хотелось бы в тулабре Tools выпадающий список, а не набор кнопок. А то у нас тут бывает по 10 конфигов разных на проект... )
Добавление выпадающего списка вместо кнопок (точнее это drop menu), возможно пока только для синтаксических инструментов (надо просто создать папку, и положить инструмент туда), для проектов пока нет. Но можно подумать. Drop box. ну не знаю. В принципе тоже можно добавить, но сложнее.
_>Это смотря какими инструментами пользоваться. У нас вся поддержка локализации в несколько строк выходит. Другое дело сами тексты. Но их можно поручить пользователям делать. )))
Ну это если с самого начала все по уму делать А так повозиться придется. С локализацией диалогов тоже будет непросто (при разной длине слов в разных языках и layout).
Re[6]: Нормальный редактор для C++ - существует ли?
Здравствуйте, Kefir, Вы писали:
_>>Кстати, возможно стоило бы как-то автоматизировать интеграцию с ним? ) Т.е. такой замкнутый цикл. Ставим в настройках проекта галочку "генерировать документацию". И оно автоматом создаёт с помощью doxygen chm файл по проекту и добавляет его в хелп текущий? K>Это языково специфично — нужен плагин.
Ммм, ну относительно специфично. Всё же doxygen это: C++, C, Java, Objective-C, Python, IDL , Fortran, VHDL, PHP, C#, D.
K>Еще можно добавить Context Help item прямо в проект. Тогда его шоткат перекроет шоткат контекстной справки языка.
Только что бы не перекрывал, а что бы искал в нём первом и если в нём нет, то шёл к системным chm...
K>Добавление выпадающего списка вместо кнопок (точнее это drop menu), возможно пока только для синтаксических инструментов (надо просто создать папку, и положить инструмент туда), для проектов пока нет. Но можно подумать. Drop box. ну не знаю. В принципе тоже можно добавить, но сложнее.
В общем я могу сказать как у нас сделано — как сделать это же в вашем редакторе максимально удобно не знаю пока. У нас все построения работают из командной строки (т.е. принципе нам даже не обязательно для этого IDE — просто мелкое удобство). Все команды одиного типа: scons release, scons debug, scons tests, scons help, scons installer и т.д. И всего таких штук 10 на обычный проект.
В Нетбинсе у нас это реализовано просто через конфигурации, который он показывает в виде выпадающего списка на тулбаре (и рядом кнопки построить, очистить, запустить). В настройках конфигурации у Нетбинса указываются команды построения (см выше), очистки (у нас это scons -c release и т.п.) и выполнения (обычно просто указывает на результат построения).
О, кстати, забыл написать об этом в прошлый раз. У вас тут минус нашёлся, который я правда преодолел своими силами, но всё же... В общем scons — это под виндой bat файл коротенький, который запускает реальный python скрипт. Так вот у вас почему-то не перехватывается его вывод (т.е. возникает отдельное окно терминала а в вашем output пустота). Эклипс и Нетбинс работает без проблем. Ну я исправил это поставив в командную строку инструмента не scons, a собственно тот вызов питона. Но в целом это не дело. А если бы тот bat файл был большим и сложным? )
K>Ну это если с самого начала все по уму делать А так повозиться придется. С локализацией диалогов тоже будет непросто (при разной длине слов в разных языках и layout).
Если используемые инструменты не позволяют сделать это всё автоматом, то конечно и не стоит возиться. )