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
добавил деструктирующее присваивание
gavr_sas
официальный день вендекапца
Если я правильно понимаю невидия переходит на опенсурс дрова
https://developer.nvidia.com/blog/nvidia-transitions-fully-towards-open-source-gpu-kernel-modules/
"and the NVIDIA Open Kernel Modules would eventually supplant the closed-source driver"
https://developer.nvidia.com/blog/nvidia-transitions-fully-towards-open-source-gpu-kernel-modules/
"and the NVIDIA Open Kernel Modules would eventually supplant the closed-source driver"
gavr_sas
добавил деструктирующее присваивание
раньше работало только с идентификаторами, теперь с любыми экспрешонами,
распаковка(в отличии от котлина) не по порядку а по названию полей
вложенную делать не буду потому что считаю что это только запутывает
сиильно понятнее читается чем какойнить
распаковка(в отличии от котлина) не по порядку а по названию полей
вложенную делать не буду потому что считаю что это только запутывает
{name age wallet} = person{money id} = walletсиильно понятнее читается чем какойнить
{name age {money id} : wallet} = person