оаоаоа, ну и почему, место для людей кончилось?
придется подписаться на Тонского из mastodon.social, ох уж эта федеративность
придется подписаться на Тонского из mastodon.social, ох уж эта федеративность
JB теперь в коммитете Ecma по жсу
Получается уже в двух, js и rust, насколько я знаю
https://x.com/DmitryMakhnev/status/1811766261065613739
Но самое большое влияние на PhP, поцы рассказывали шо PhPшники к нам приходят чтобы уточнять дизайн след фич в языке, тип насколько оно будет удобно поддержать в фронтенде идешки.
Как я понимаю они почти поголовно все сидят в идее(PhpStorm)
Получается уже в двух, js и rust, насколько я знаю
https://x.com/DmitryMakhnev/status/1811766261065613739
Но самое большое влияние на PhP, поцы рассказывали шо PhPшники к нам приходят чтобы уточнять дизайн след фич в языке, тип насколько оно будет удобно поддержать в фронтенде идешки.
Как я понимаю они почти поголовно все сидят в идее(PhpStorm)
🔥1
У Ktor — основного фреймворка для бека котлин появилась появился реестр плагинов
Запушенные в эту репу плагины будут доступны в проджект генераторе start.ktor.io
Примерно 25% использования котлина это бекенд, но в большинстве случаев спринг((
Запушенные в эту репу плагины будут доступны в проджект генераторе start.ktor.io
Примерно 25% использования котлина это бекенд, но в большинстве случаев спринг((
👍1
Замечательная и халявная оптимизация для гарбадж коллектора
emptyList|Map|Set|Array() это синглтоны иммутабельный пустых коллекций
Создавая новую коллекцию создается новый инстанс, а так все пустые коллекции будут одним и тем же.
Конечно это возможно только для иммутабельных
Тоже самое в других языках, каждый [] в жс это новый объект для гцшки
emptyList|Map|Set|Array() это синглтоны иммутабельный пустых коллекций
Создавая новую коллекцию создается новый инстанс, а так все пустые коллекции будут одним и тем же.
Конечно это возможно только для иммутабельных
Тоже самое в других языках, каждый [] в жс это новый объект для гцшки
💯1
This media is not supported in your browser
VIEW IN TELEGRAM
добавил поддержку лсп go to definition для типов и методов, остались переменные и мб еще чето
This media is not supported in your browser
VIEW IN TELEGRAM
Вы даже не представляете наскооолько все усложняют многострочные экспрешоны
- Когда он однострочный
> получили номер строки и позицию
> идем на строку, ищем там такой экспрешон внутрь токена которого попадает курсор юзверя
- Когда он многострочный
> вииуувииу, теперь нужно добавлять многострочные стейтменты в мапу {номер строки: Set(expr)} столько раз, сколько строк он занимает
> окей это Range
- а еще теперь позиция начала может быть > позиции конца, ведь конец может быть на другой строке, поэтому чтобы найти попал ли курсор в токен просто проверить 2 неравенства
> если номер строки совпадает с
> место кончилось, если мы на последней строке то <= end
> посередине всегда true
- Когда он однострочный
> получили номер строки и позицию
> идем на строку, ищем там такой экспрешон внутрь токена которого попадает курсор юзверя
- Когда он многострочный
> вииуувииу, теперь нужно добавлять многострочные стейтменты в мапу {номер строки: Set(expr)} столько раз, сколько строк он занимает
> окей это Range
(tok.lineStart..tok.lineEnd).forEach {add...}- а еще теперь позиция начала может быть > позиции конца, ведь конец может быть на другой строке, поэтому чтобы найти попал ли курсор в токен просто проверить 2 неравенства
start <= cursor && cursor <= end не выйдет, нужно.. рассмотреть 3 случая> если номер строки совпадает с
tok.lineStart то пользователь нажал на первую строку экспрешона, и для проверки диапазона позиции на строке мы будем сравнивать курсор с позицией начала токенаcur.line == tok.startLine && cur.pos >= tok.start > место кончилось, если мы на последней строке то <= end
> посередине всегда true
This media is not supported in your browser
VIEW IN TELEGRAM
Добавил ховер буквально за 30 мин, он не особо отличается от остального, токо возвращаем строку типов
🥰2👍1
This media is not supported in your browser
VIEW IN TELEGRAM
добавил деструктирующее присваивание