Size: a a a

Чат подкаста «Разбор Полётов»

2019 October 20

AA

Anton Arhipov in Чат подкаста «Разбор Полётов»
Паша Финкельштейн
Да? Чот я не видел там экстракт метода, но может плохо смотрю. Я использую только когда мне надо супербыстро что-то поправить на джаве/питоне. Со скалой уже не использую
Ну из коробки там вроде для тайпсурипта раблтало. Надо перепровериь. Для жавы, там понятно, плагин надо ставить, и работало оно капец ужасно
источник

AA

Anton Arhipov in Чат подкаста «Разбор Полётов»
источник

ПФ

Паша Финкельштейн in Чат подкаста «Разбор Полётов»
Anton Arhipov
Ну из коробки там вроде для тайпсурипта раблтало. Надо перепровериь. Для жавы, там понятно, плагин надо ставить, и работало оно капец ужасно
Ну понятно что у меня есть плагин для джавы. Но вообще-то, учитывая что это кусок эклипса — могли и сделать (эклипс же умеет рефакторинги и поэтому он IDE)
источник

ПФ

Паша Финкельштейн in Чат подкаста «Разбор Полётов»
А экстракт метода?
источник

ПФ

Паша Финкельштейн in Чат подкаста «Разбор Полётов»
Потому что мне кажется что это самый популярный и самый нужный рефакторинг
источник

ПФ

Паша Финкельштейн in Чат подкаста «Разбор Полётов»
Переименовать переменную я могу и просто заменой
источник

AA

Anton Arhipov in Чат подкаста «Разбор Полётов»
Паша Финкельштейн
А экстракт метода?
Хм, хороший вопрос. Я не стал пробовать. Про что популярней, не возьмусь авторитетно заявлять, но мое субъективное ощущение что introduce variable таки чаще используется
источник

ПФ

Паша Финкельштейн in Чат подкаста «Разбор Полётов»
Anton Arhipov
Хм, хороший вопрос. Я не стал пробовать. Про что популярней, не возьмусь авторитетно заявлять, но мое субъективное ощущение что introduce variable таки чаще используется
поди ещё и постфиксной нотацией пользуешься?
источник

AA

Anton Arhipov in Чат подкаста «Разбор Полётов»
Паша Финкельштейн
поди ещё и постфиксной нотацией пользуешься?
Я? Бывает
источник

ПФ

Паша Финкельштейн in Чат подкаста «Разбор Полётов»
кстати, для октлина она тож так себе работает, не только для скалы
источник

AA

Anton Arhipov in Чат подкаста «Разбор Полётов»
Паша Финкельштейн
кстати, для октлина она тож так себе работает, не только для скалы
Там плагин один энтузиаст писал. Потом решил что не тянет и пришел к JB просить чтоб плагин у него забрали и нормальным сделали
источник

ПФ

Паша Финкельштейн in Чат подкаста «Разбор Полётов»
Anton Arhipov
Там плагин один энтузиаст писал. Потом решил что не тянет и пришел к JB просить чтоб плагин у него забрали и нормальным сделали
Не, это я не про вскод, это я про идею. Там вот постфиксная нотация для котлина так себе работает
источник

AA

Anton Arhipov in Чат подкаста «Разбор Полётов»
Паша Финкельштейн
Не, это я не про вскод, это я про идею. Там вот постфиксная нотация для котлина так себе работает
А, возможно. Там не пробовал
источник

AA

Anton Arhipov in Чат подкаста «Разбор Полётов»
Котлин, котлин... пффф. Кобол!!!

https://devops.com/the-beauty-of-the-cobol-programming-language-v2/
источник

OC

Oleg Chirukhin ☄️ 🧙🏻‍♂️🚀 in Чат подкаста «Разбор Полётов»
Паша Финкельштейн
Да? Чот я не видел там экстракт метода, но может плохо смотрю. Я использую только когда мне надо супербыстро что-то поправить на джаве/питоне. Со скалой уже не использую
Насколько понимаю, экстракт метода - это вопрос уровня модели языка, но в LSP сейчас нет такового понятия, там прибитые гвоздями костыли вроде "а ещё у нас есть тайп дефинишены". Раздела про Refactoring Protocol тем более нет. И его не то чтобы сильно кто-то хотел делать.

Сейчас каждый язык (каждый плагин поддержки) пишет всё это для себя сам.

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

ПФ

Паша Финкельштейн in Чат подкаста «Разбор Полётов»
Oleg Chirukhin ☄️ 🧙🏻‍♂️🚀
Насколько понимаю, экстракт метода - это вопрос уровня модели языка, но в LSP сейчас нет такового понятия, там прибитые гвоздями костыли вроде "а ещё у нас есть тайп дефинишены". Раздела про Refactoring Protocol тем более нет. И его не то чтобы сильно кто-то хотел делать.

Сейчас каждый язык (каждый плагин поддержки) пишет всё это для себя сам.

С другой стороны, если уж в языке это решено, то добавить рефакторинг в VSCode нет никакой проблемы. Это просто произвольная операция над селекшеном текста в едиторе
Опять-таки, плагин для джавы работает не на LSP ЕМНИП. Там просто кусок эклипса
источник

OC

Oleg Chirukhin ☄️ 🧙🏻‍♂️🚀 in Чат подкаста «Разбор Полётов»
Паша Финкельштейн
Опять-таки, плагин для джавы работает не на LSP ЕМНИП. Там просто кусок эклипса
там https://github.com/eclipse/eclipse.jdt.ls

это джаваспецифичная реализация LSP от еклипса
источник

OC

Oleg Chirukhin ☄️ 🧙🏻‍♂️🚀 in Чат подкаста «Разбор Полётов»
Паша Финкельштейн
Опять-таки, плагин для джавы работает не на LSP ЕМНИП. Там просто кусок эклипса
Проблема в том, что рефакторинг - это codeAction, а codeAction - это структура вида "весь текст"+"ренж в нём" (от символа до символа), соответственно рефакторинг должен что-то сделать с этим буфером и решить - какую цепочку команд запустить в ответ. Нету структурного редактирования
источник

ПФ

Паша Финкельштейн in Чат подкаста «Разбор Полётов»
А, блин. А я думал это рантайм эклипса в оболочке вскод
источник

OC

Oleg Chirukhin ☄️ 🧙🏻‍♂️🚀 in Чат подкаста «Разбор Полётов»
но ты у себя в плагине можешь попарсить файл сам как хочешь (у тебя есть и полный текст файла, и весь контекст), потом понять к какому символу например в асте относится тот raw range о котором идёт речь, закэшировать это всё у себя на стороне плагина и что-то с этим сделать
источник