Cheese
это задача IDE, а кого волнует парсер?
Alexander
был вопрос в том, что IDE для работы нужен парсер
Alexander
и вопрос, что за парсер от языка требуется, чтобы использовать в IDE
A64m
хаскельным "иде" много чего еще можно улучшить до того, как можно начинать из-за "неинтерактивности" парсера начинать страдать
parket
Alexander
а что?
Cheese
Aleksei (astynax)
Конечно нет. Достаточно регулярок для навешивания подсветки :)
Anonymous
Так такого добра ведь в избытке, не?
Anonymous
Кстати, для идеи можно использовать их парсер. Достаточно определить синтакс через BNF, и Grammar Kit всё сделает.
Дело за малым: осилить BNF и plugin api.
Дело на 3+ месяца. Можно подсмотреть существующие плагины. Или даже починить их по необходимости
Aleksei (astynax)
У Кметта есть доклад про
то, как надо делать языки, чтобы частичный парсинг работал. Спойлер: Хаскель не получится доделать
Anonymous
Если речь про идею, то частичный парсинг примотать очень сложно. Не уверен, что можно вообще
Если интересны детали, то есть поверхостный лексер, который вызывается при каждой клавише, и дотошный парсер, который вызывается реже.
Выхлоп лексера подаётся в парсер, который создаёт AST.
Евгений
Aleksei (astynax)
Нет вроде. Почти хаскель даже может получится
Евгений
Ну хаскель без инфиксной нотации это смнтаксически форт
Aleksei (astynax)
Радужная раскраска переменных - тема отличная, да
Aleksei (astynax)
Раскраску синтаксиса же можно отключать, когда к синтаксису привыкнешь
Aleksei (astynax)
(делал так в питоне - заменял подсветку на семантическую)
Евгений
Семантическая это как?
Ignat
это когда каждой переменной по цвету
Aleksei (astynax)
ага
Aleksei (astynax)
Сразу видно опечатки :)
Евгений
Aleksei (astynax)
https://camo.githubusercontent.com/dd2ebaeea97ec14f69d34e1ea8882937fa0d32c0/68747470733a2f2f7261772e6769746875622e636f6d2f616e6b7572646176652f636f6c6f722d6964656e746966696572732d6d6f64652f67682d70616765732f64696d2d6f746865722d6b6579776f7264732e706e67
Andrei
Aleksei (astynax)
Не тру - подсветка синтаксиса осталась!
Aleksei (astynax)
Так только хуже
Евгений
Aliester
эх
Aliester
иногда мечтаю написать свой язык, IDE и весь тулинг идеально
Aleksei (astynax)
Безумие, джава
это ближайший скрин, который я с телефона нашел :)
Andrei
Aliester
назвать его Эдемом
Aliester
но потом вспоминаю что я криворукий неряха
Алексей
Не, без подсветки нельзя - любой язык превращается в кашу
Aleksei (astynax)
Можно. Проверено Пайком
Aliester
го и так каша
Aliester
с подсветкой и без
Andrei
Anonymous
Aliester
мне щас 20
Евгений
Aleksei (astynax)
Евгений
Баш это не только язык, но и программная оболочка
Aliester
Евгений
Кстати если бы в ghci запилили подстветку синтаксиса и автокомплит, то наверняка не было бы проблем с IDE для хаскеля
Anonymous
Допилили бы лексу. С виду - такой хороший проект
Aragaer
я иногда вот тут вижу загадочное слово "тулинг". Что это такое?
Aliester
ну вот смотри
Aliester
есть плотник
Евгений
А Imants это робот? Он чо-то постоянно невпопад говорит
Aliester
он может в общем и топором все делать
Aliester
но для работы лучше иметь инструменты
доня.
Aliester
тулинг - инструментарий некоторого окружения или экосистемы
Aragaer
ок
Aragaer
главное, чтобы он не был навязанным и неотъемлемым куском адского комбайна
Aragaer
захотел линтер - скачал, запустил
Aliester
npm-экосистема кстати пример хорошо развитого тулинга
Alexander
ок, если npm развитая, значит с haskell все хорошо
Aliester
но на мой вкус он пока еще на стадии помойки, которая у всех экосистем есть
Alexander
кабал-интстал не такой кривой даже был
Aliester
Anonymous
А что с npm не так? Вроде работает ведь
Aliester
Anonymous
Про php не в курсе.
Ну а npm? Cabal тоже не плох, но и npm работает исправно
Alexander
хотя бы пуллинг либ разных версий в один проект
Aliester
не люблю когда мне о нпм нужно смотреть 11 видео чтобы его вменяемо поставить
Andrei
Alexander
топ левел фича
Aliester
а, да
Aliester
насчет npm есть одно слово
Aliester
leftpad