LINUX.ORG.RU

Поддержка LSP в GCC

 , , ,


0

3

В 2017 году появились сообщения о начале работы по реализации LSP (Language Server Protocol) в GCC и тогда же появились первые патчи POC реализации. А каков нынешний статус LSP в GCC? Он уже реализован или должен появиться в GCC 11 или ещё не скоро?



Последнее исправление: hummer (всего исправлений: 1)

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

Зачем если если есть Clangd?

Разве он умеет работать с GCC?

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

не ставить еще и llvm, если ты хочешь компилять с gcc, например.

Lrrr ★★★★★
()

Скорее всего, там же где и раньше. Разрабы gcc всегда были крайне против интеграции с ide.

hateyoufeel ★★★★★
()

Жаль, что не пилят. А кто-нибудь сегодня пишет плюсы без clangd? У меня vim+coc+clangd, что нибудь сравнимое по удобству существует без clang?

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

У микрософта есть. Можно попробовать vscode + их расширение для с++, кроме того там ещё есть расширение для cmake.

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

Чем она им мешает?

Я сейчас уже не найду так быстро, но в районе 2005, когда поднимался вопрос о запиливании дампа AST и экспорта ошибок в машинно-читаемом формате, многие разработчики GCC были резко против из-за возможности использования этих фич в проприетарных IDE для парсинга кода. Там вроде даже RMS засветился.

Какие-то перцы ещё запилили убожество в виде gccxml как решение проблемы. Ну а потом появился clang, который это легко позволяет делать, и все забили на интеграцию gcc жирный болт.

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

что нибудь сравнимое по удобству существует без clang?

visual studio 2019.

А вообще, почти все редакторы С++ на clangd, И CLion и QtCreator и KDevelop.

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

CLion? На сколько я знаю JetBrains всячески против любых реализаций LSP, в пользу собственных анализаторов.

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

у меня нет лицензии CLion, но вот картиночки на их сайте: https://resources.jetbrains.com/help/img/idea/2020.3/cl_clangd_settings.png

https://resources.jetbrains.com/help/img/idea/2020.3/cl_clangd_completion.png

Only Clangd completion (default)

By default, code completion is fully provided by Clangd. CLion still uses the build-in engine to complete symbols for non-included files if Clangd-based completion fails to provide anything. In the case of a crash or another serious issue, CLion switches to the built-in engine as well.

fsb4000 ★★★★★
()
Последнее исправление: fsb4000 (всего исправлений: 2)
Ответ на: комментарий от hummer

Странно, от подобного для Rust они отказались.

Подозреваю, что LSP для раста ещё в достаточном сыром состоянии: нет большой выгоды от переиспользования - ведь придётся как-то и свой код адаптировать.

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

Подозреваю, что LSP для раста ещё в достаточном сыром состоянии: нет большой выгоды от переиспользования

Я бы не сказал. Использую vscode+rls, всё работает весьма неплохо. Я так понимаю, JetBrains просто написали своё потому что могут.

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

Я так понимаю, JetBrains просто написали своё потому что могут.

Ну я примерно так же думаю. Если могут (себе позволить), то пишут сами. Видать решили, что догонять и перегонять clangd нерентабельно. Растовым плагином явно небольшая команда занимается (судя по гитхабу - два человека), велосипедить без нужны не стали бы (наверное). Ну и когда плагин начинали писать, то rls был в явно худшем состоянии, чем сейчас (а rust-analyzer, наверное, вообще не было).

P.S. Использую как раз плагин от джетбрейнс и тоже «всё работает».

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

А чего не rust-analyzer?

Честно говоря, я просто забыл что он существует (:

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

JetBrains просто написали своё потому что могут

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

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

Потому что нужно было.

Разве на тот момент, когда они запиливали поддержку Rust, RLS ещё не было?

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

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

немного не в тему, но раз ты им пользуешься, поясни по хардкору, как там нормально настроить автодополнение? Суть такова, когда ты что-то набираешь, это убожество пытается угадать что ты набираешь, когда ты ставишь space, оно автодополняет тем, чем смогло, а не тем, что я набирал, и приходится либо перед каждым space или enter ему по esc долбить или вообще выключить это убожество. Как его по человечески настроить?

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

Удивительно, как выбор темы соответствует твоей Аве.

Emacs: https://github.com/m-cat/nimbus-theme
VSCode: https://marketplace.visualstudio.com/items?itemName=dustypomerleau.yarra-valley

Вторую очень легко поменять на мягкие цвета, с соблюдением нормальной расцветки и поддержке семантики (годно сделана внутрях).

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

ааааа! Я хочу правый мопед!

BLM в лице черно-белого Шварца смотрит на тебя осуждающе каменным неменяющимся лицом.

anonymous
()
19 марта 2021 г.
Ответ на: комментарий от hateyoufeel

Спасибо за отличную тему, мил человек. Кажется, я буду искать похожую для IDEA, либо склонирую её туда.

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