LINUX.ORG.RU
ФорумTalks

История переезда на VSCode

 , , ,


1

2

Привет, ЛОР!

Я должен тебе кое в чём признаться. Не так давно я сменил emacs в пользу VSCode в качестве основного редактора и, ты знаешь, мне понравилось!

Последние 4 года я использовал emacs, а до того – 10 лет с vim. У Vim был отличный интерфейс, но, к сожалению, многие фичи было невозможно реализовать. В emacs было больше функционала, но допотопная модель, на которой он основан, давала о себе знать. В частности, интерфейс периодически тормозил или вообще вис напрочь, если какой-нибудь плагин выполнялся чуть больше времени чем нужно. Или, когда LSP-сервер начинает пересобирал проект в фоне, emacs выжирал 100% процессора только чтобы парсить выхлоп компилятора.

В итоге я сдался, поставил VSCode и… Ты знаешь, ЛОР, это, наверное, самый лучший редактор кода для Linux на данный момент! Для всех моих задач плагины доступны на расстоянии пары кликов мышкой. Поддержка C/C++, Haskell, Rust и Latex завелась просто с полпинка. Интерфейс вообще ни разу не лагал. Памяти жрёт примерно как emacs, но при этом почти не ест процессор.

Скажи, ЛОР, вот к чему нужны были все эти боль и страдания? И как так вышло, что корпорация Microsoft за пару лет запилила годный редактор, в то время как сообщество вокруг свободного софта может породить только срачи типа vim vs emacs? Я правда в замешательстве. Может, меня где-то обманывают? Не понимаю, как так вышло.

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

Очень смешно

Ещё и «Интерфейс вообще ни разу не лагал».

Не, наверно, GTK+ в эклипсовом SWT зверски лагает, но на оффтопике он вот прям почти нэйтив.

VSCode заботливо рендерит куски канвы в буфере и только потом меняет, пожтому таких шедевров отрисовки по-очереди, как в GTK, нет. Задержки ощущаются, бесит.

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

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

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

Х3 я либо нетребовательный, либо подвисонов выше пинга до серверочков где тружусь не наблюдал.

pon4ik ★★★★★
()

Я пробовал, но чего-то не хватало, а чего — уже не помню, давно было. Там хоть REPL есть?

Miguel ★★★★★
()

А в VSCode можно написать фрагмент кода, поставить курсок справа от него, нажать C-x C-e и чтобы оно вычислилось, возможно, поменяв при этом поведение редактора?

Собственно, это же главное…

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

Универсальный протокол, позволяющий отвязать собственно поддержку языка от редактора/IDE же ну. В итоге поддержку языка можно сделать один раз, а не в каждый редактор/IDE отдельно.

Я понимаю, от того и пишу, что в теории хорошо.

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

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

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

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

А когда-то было иначе? Я поэтому и использовал spacemacs, в нём можно добавить строчку в список слоёв, перезагрузить редактор и поддержка языка готова.

Из того, что люди руками делают, вроде как тоже много не нужно: добавить lsp-ui и плагин для нужного языка, потому как lsp не раскрашивает синтакс. Тоже не rocket science.

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

PyCharm умнее по подсказкам, да и в целом, это же IDE. VSCode косячный, там линтер не всё понимает - у меня он PyQT не хотел видеть.

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

А когда-то было иначе?

Была перспектива, что будет иначе.

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

там линтер не всё понимает

Что значит «там линтер»? Он будет запускать тот линтер (или несколько), который ты укажешь, а сам линтер будет работать так, как ты его настроишь. PyCharm это тоже касается, полагаю.

WitcherGeralt ★★
()

Постеснялся бы в таком признаваться на публику. И что, там тоже есть нормальные kill ring, registers и вот это все? Или как везде, одно название от них?

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

Я, кстати, как-то раз говорил с перцами из JetBrains: у них от LSP сильно пригорело, потому что контора вложила довольно дохрена средств в поддержку языков в их IDE, а тут ВНЕЗАПНО все эти фичи можно в любом редакторе получить.

При этом от LSP для Rust они принципиально отказались, в пользу собственного анализатора.

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

На Kotlin. IntelliJ написан на Java, а все новые фичи, с некоторых пор, они стали писать на своём Kotlin.

bbk123 ★★★★★
()

Вспомнился один бывший коллега - архитектор. Он предпочитает JEdit http://www.jedit.org/ В те времена, когда мы работали вмести он писал в основном на C/C++. Каково мнение зрительного зала о его выборе среды разработки?

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

ахах, в итоге rust-analyzer сейчас умнее чем IDEA, я пробовал пользоваться IDEA, автодополнение не работает нормально, clippy не подсвечивается (тут может я чего недонастроил конечно), если есть ошибки в коде, то не подсвечиваются, при этом в емаксе все подсвечивается и автодополнение работает лучше чем в плагине от JetBrains :)

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

Разве подобный режим предлагают все кому не лень в виде плагина?

Предлагают. Но это навсегда будет vim-mode и vim уже никогда не будет забыт, он навсегда вошел в историю. Даже если и останется существовать только в виде плагинов для других ide/редакторов.

В имаксе никаких уникальных фич нет, чтобы в других редакторах писать emacs-mode.

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

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

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

Я знаю, что умеет, но там это криво работает, особенно если часто меняются сети и закрываешь/открываешь крышку ноутбука.

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

Я хотел сказать, что вы все наверняка гоните, но вместо этого пошёл посмотрел сырцы intellij-rust, и лучше б я не смотрел. Грустно это.

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

В имаксе никаких уникальных фич нет

Имакс это же не редактор, а монструозный комбайн среда исполнения программ на лиспе. Весь этот vscode и есть современный имакс.

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

Я до сих пор использую Emacs для работы с git. Magit рулит!

А так да, перехал с него года 3-4 назад еще на Atom.

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

VSCode заботливо рендерит куски канвы в буфере и только потом меняет

В VSCode абсолютно весь ui - это DOM-дерево. Отрисовка чего-либо на канвасе разработчиками vscode не используется. Весь рендеринг браузерный, им занимается blink, так же как во всех chrome-based приложениях.

mimico
()

нормально набрасываете, у меня там соседняя тема про иде для с++2а, ваш этот вскод в него умеет чтобы красиво подсветочка работала с автокомплитом или как и все что я пока натыкал застряли в районе с++17?

abcq ★★
()

ты мне с самого начала не нравился

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

Ок, значит, заботливо рендерит hidden, потом делает block.

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

у меня там соседняя тема про иде для с++2а, ваш этот вскод в него умеет чтобы красиво подсветочка работала с автокомплитом

Он умеет то что умеет шланг. Поставь clangd и у тебя будет последний C++.

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

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

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

Pylint достаточно тупой, это факт, но ты можешь включить хоть pyflakes с качтомными правилами, хоть mypy дополнительно. Я, конечно, тоже люблю вариант «включил и работает», но всё же предпочитаю в точности понимать, что при этом происходит. В VSCode всё крайне конфигурябельно и прозрачно в этом плане, а так же нет нет ограничения одним языком, так что для меня лично выбор очевиден.

WitcherGeralt ★★
()

поиск по файлам («Find in Files» который) сложно сделать более неудобным чем в vscode, в остальном норм

pru-mike ★★
()
Ответ на: комментарий от RazrFalcon

До уровня IDEA еще пилить и пилить.

Да, я соглашусь. Подвисать на моём 32-ядерном тредриппере при наборе текста – такое только IDEA может (и emacs с ведром плагинов :). А если учесть интерфейс, который выглядит как будто его героиновый наркоман выблевал во время ломки, то тут идее никогда равных не будет. Я не представляю, насколько нужно себя ненавидеть, чтобы пользоваться этой раковой опухолью от мира софта. Такому даже фанаты Дельфина и группы Кровосток могут позавидовать, а уж они себя ненавидят как никто другой.

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

Ждём когда в VSCode появится:

  1. Поддержка проектов. task.json - это треш.
  2. Нормальная интеграция с git.
  3. Проверка правописания (орфография и грамматика)
  4. Нормальный поиск/замена по файлу(-ам), а не те то убожество что сейчас.
  5. Цикличный буфер. Убогие васяно-плагины не предлагать.
  6. Куча Rust-специфичных ништяков. RA конечно отличный, но IDEA just works.

IDEA страшненькая, дико медленная и жрёт кучу ОЗУ, но плюсы перевешивают.

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

Яхз что всё это должно значить, что такое «нормальная интеграция с git» по-твоему и т.д. Мне бы код писать и шоп не тормозило. RA, кстати, тоже just works. Rustup и поехали. Я сам аж удивился, что всё так просто.

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

Нет, а зачем? Более того, я через monkeypatch добавил немножко кода, который в каждое сообщение телеметрии добавляет случайное фото из моей коллекции утренних дикпиков. И заодно шлёт это же фото на почту Сатье Наделле.

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

Ты сделал себе в vscode сетап чтоб управлять только клавой, с vim кнопками и leader key для всего остального? Последний раз, когда я смотрел, с vim плагином было много проблем.

Kuzy ★★★
()

Ещё в VSCode есть божественный плагин - подсветка SQL строк во всех других языках.

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