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