Pull to refresh
47
0.1
Евгений А. Симоненко @easimonenko

Любитель

Send message

Как насчёт чёрно-белой (grayscale) темы? Недавно я озадачился вопросом: насколько вообще читаем программный код на разных языках, если отключить подсветку? Попробовал просматривать код в простом редакторе без подсветки на таких языках как: C, Lisp, Python, Haskell, Agda, Assembler и пришёл к некоторому выводу... Но тут я не про это: мне показалось, что движение за отказ от синтаксической подсветки кода слишком радикален и неразумен. Зато я вспомнил, что раньше в продвинутых редакторах текста и средах разработки поставлялись чёрно-белые темы. Поискал такую для GNU Emacs и не нашёл подходящую, как ни странно. Попалось несколько тем, авторы которых декларировали, что это то, что мне нужно, но на поверку выходило, что не так. Либо это были на самом деле цветные темы, либо способ расцветки серым мне совсем не нравился. В итоге я потратил три вечера на то, чтобы разработать свою тему, точнее две: светлую и тёмную. Я никогда до этого не разрабатывал тем, поэтому первый вечер потратил на эксперименты, взяв за основу одну из найденных тем. Второй вечер я посвятил написанию светлой темы с нуля, ну а третий --- на то, чтобы конвертировать светлую тему в тёмную и опубликовать результат в репозитории. Вот что получилось:

Светлая версия
Светлая версия

С тёмной версией можно ознакомиться на страничке темы. Лично мне светлая тема нравится больше тёмной, а при создании её дизайна я вдохновлялся книгами по математике и программированию. Откуда и данное ей мною название: Book Like, то есть "Как в книге".

Установить тему можно непосредственно из репозитория:

(package-vc-install '(book-like-themes :url "https://github.com/easimonenko/book-like-themes"))

Тема покрывает не все режимы, естественно, а только font-lock, company, magit, org, да и те не до конца. Если тема приживётся, буду дорабатывать и добавлять поддержку других режимов. А может кто из вас захочет прислать свои доработки в Pull Requests, кто знает?

Пишите в комментариях, как вам такое, знаете ли или может быть уже используете чёрно-белую тему, и нужна ли статья про создание собственных тем для GNU Emacs? Кстати, а что вы думаете про читаемость программного кода без применения подсветки?

Репозиторий кода темы: https://github.com/easimonenko/book-like-themes

Tags:
Total votes 2: ↑2 and ↓0+2
Comments2

GNU Emacs 31: новые возможности по управлению окнами

В новой версии Emacs появились долгожданные функции по управлению окнами: вращение буферов по окнам, вращение раскладок и обмен между левой и правой половинами фрейма (как в Norton Commander и Midnight Commander). Подробности в статье.

Источник: https://www.reddit.com/r/emacs/comments/1jqfivv/emacs_31_new_window_commands/

Tags:
Rating0
Comments0

3 июля 2023 г., спустя полтора года вышла новая версия языка функционального программирования Koka. Несмотря на минорность версии в новом компиляторе внедрено изобретённое его авторами Full In-Place Calculus. Если коротко, то суть FIP в следующем: у нас есть чистая функция, производящая деконструирование объекта данных, а затем вновь конструирующая объект данных. Например, это функция трансформации списка или дерева. Так вот при таких манипуляция в памяти происходит создание новых объектов данных, которые затем и используются, а старые остаются там до тех пор, пока их не удалит за ненадобностью сборщик мусора (кстати говоря, язык Koka не использует сборщик мусора). FIP же позволяет производить проверку безопасности переиспользования памяти. Что и было реализовано в новой версии Koka. Теперь вы можете помечать функцию ключевым словом fip или fbit (FBIP техника, предложенная другими авторами), использовать разрушающий match! и получать описанный выше эффект. Так же, по-видимому, в связи со внедрением FIP появился borrowing (владение), которое также участвует в анализе кода на безопасность. Из приводимого в статье результата benchmarks видно, что новый подход увеличивает производительность программ на Koka и приближает её к таковой на C или C++.

Почитать о Koka можно в этом посте.

Rating0
Comments0

Information

Rating
3,349-th
Location
Краснодар, Краснодарский край, Россия
Registered
Activity

Specialization

Embedded Software Engineer, Content Writer
Linux
Git
Database
C
System Programming
Assembler