#c #ide #cross-platform #clang
#c #среда разработки #кроссплатформенная #clang
Вопрос:
Компилятор clang C утверждает, что он создан, среди прочего, для лучшей интеграции IDE, предоставляя API для IDE для использования для таких задач, как синтаксический анализ кода.
Итак, существуют ли какие-либо хорошие среды разработки C , которые используют clang для предоставления таких функций, как семантическое выделение, рефакторинг, а также поиск и отображение семантических ошибок в режиме реального времени?
Я использую Eclipse CDT, но его анализатор C полон недостатков, из-за которых IDE сообщает о множестве раздражающих ложноположительных ошибок в коде. Я хотел бы иметь IDE, которая сообщает об ошибке тогда и только тогда, когда компилятор сообщит о той же ошибке, поэтому меня интересует IDE, построенная на внутренних компонентах компилятора.
Меня в первую очередь интересуют кроссплатформенные IDE, хотя я бы не прочь узнать об одноплатформенных для Windows или Linux (так что не Xcode), если они являются FOSS (еще одна причина, почему не Xcode).).
Ответ №1:
Qt Creator основывает свой синтаксический анализ кода следующего поколения и связанные с ним функции на Clang:
https://www.qt.io/blog/2011/10/19/qt-creator-and-clang
Выглядит очень, очень многообещающе!
Комментарии:
1. Хороший улов! Также было объявлено несколько дней назад.
2. HighCommander4: это помогает, если вы находитесь в списке рассылки Clang 😉
3. Я надеялся, что их будет больше… но я думаю, что clang — довольно молодой проект, и со временем появятся новые. На данный момент ответ принят 🙂
4. Стоит отметить, что от этой попытки отказались . По-видимому, создатели Qt обнаружили, что производительность недостаточно высока, и вернулись к поддержке собственного синтаксического анализатора C .
5. @HighCommander4 Они, конечно, не отказались от этого! Это сообщение более 4 лет назад, и угадайте, что? Модель кода Clang все еще существует, и хотя она использует примерно в 5 раз больше памяти, чем старая модель кода Qt Creator, она, по крайней мере, распознает все новые модные вещи, и вы получаете сообщения об ошибках / предупреждениях Clang в своей IDE. Просто чтобы еще больше опровергнуть вашу точку зрения, они хотят увеличить использование Clang в IDE: blog.qt.io/blog/2017/05/24/qt-creator-4-3-0-released /. …
Ответ №2:
вы пробовали clang complete?
если вы любитель панк-рока, то vim достаточно ide 😉
я часто работаю с xcode, поэтому … не могу поделиться опытом из первых рук, но я знал о его существовании.
Комментарии:
1. @lurscher добро пожаловать — я также попытаюсь попробовать это в эти выходные.
Ответ №3:
gedit на самом деле не является IDE, но для него есть плагин, который обеспечивает помощь в написании кода с помощью clang
Ответ №4:
Кажется, что CodeLite v3.5 изначально поддерживает Clang. Однако я не нашел, возможно ли настроить LLVM в качестве серверной части.
Комментарии:
1. удивительно!! пожалуйста, не воздерживайтесь от обновления этого ответа, если у вас возникнут проблемы
Ответ №5:
Актуальное новое развитие в этой области в проекте Language Server Protocol (LSP), целью которого является API, не зависящий от языка, который позволяет отделять редакторы / IDE от бэкэндов, обеспечивающих интеллектуальный анализ / анализ кода.
Продолжается работа по созданию серверной части C на основе Clang под названием Clangd.
Также продолжается работа над несколькими редакторами / IDE для поддержки LSP в качестве клиента.
Как только внутренняя реализация станет более зрелой, все редакторы, поддерживающие LSP, в принципе смогут использовать возможности clang, предоставляемые через Clangd.
Ответ №6:
В KDevelop теперь есть поддержка c и c на основе clang, включая семантический анализ и автозаполнение. В первую очередь для Linux, но (по состоянию на октябрь 2016 года) бета-версия также доступна для Windows и Mac.
Для emacs существуют irony-mode и rtag, которые предоставляют такие функции, как автозаполнение, проверка ошибок на лету и переход к символу. В сочетании с cmake-ide это очень мощные инструменты, и тот, кто хорошо разбирается в emacs, может быть очень продуктивным в этой среде.
Ответ №7:
Не FOSS, а JetBrains (известные IDEA и ReSharper) превращают свой продукт AppCode в полноценную среду разработки C IDE, поддерживающую Win / Linux / Mac и использующую clang.
Комментарии:
1. Есть ли у вас какие-либо доказательства того, что она основана на clang, помимо интеграции со статическим анализатором clang?
2. Я не знаю, использует ли он clang или отсрочивает набор инструментов платформы для фактической сборки, но это не то, о чем был ваш первоначальный вопрос. Я уверен, что он будет использовать clang для всего остального, хотя — это то, для чего предназначен clang, и не похоже, что есть какие-либо жизнеспособные альтернативы.
3. Я имел в виду такие функции, как завершение кода, навигация по коду, подсветка синтаксиса и рефакторинг, поддерживаемые clang. Это не относится ни к одной из других известных мне IDE на C — Eclipse, Code::Blocks, CodeLite, NetBeans, KDevelop, Qt Creator — кроме XCode и Qt Creator следующего поколения, о которых говорил @rubenvb, поэтому я и спросил.
4. Похоже, что clang не используется для модели кода или статического анализа или чего-либо еще, кроме сборки.
Ответ №8:
jucipp
~ 900 звезд на GitHub во 2 квартале 2019 года: https://github.com/cppit/jucipp
Теперь перенесено в GitLab: https://gitlab.com/cppit/jucipp
Явно рекламирует серверную часть libclang в качестве основной функции.