Некоторое время назад я разработал режим GNU Emacs для редактирования конфигурационных файлов операционной системы Embox. Кроме всестороннего изучения Emacs Lisp мне потребовалось разобраться со структурой модуля режима, а также процессом и требованиями к публикации пакетов в MELPA, наиболее популярном архиве пакетов для GNU Emacs. В этом руководстве я расскажу, что нужно знать, чтобы написать свой собственный режим, и как опубликовать свой собственный пакет.
;;;###autoload
(define-derived-mode mybuild-mode prog-mode "Mybuild"
"Major mode for editing Mybuild files from Embox operating system."
:syntax-table mybuild-mode-syntax-table
(setq-local comment-start "// ")
(setq-local comment-end "")
(setq-local indent-tabs-mode nil)
(setq-local indent-line-function 'mybuild-mode-indent-line)
(setq-local font-lock-defaults '(mybuild-highlights)))
Полгода назад я вёл в Телеграме канал о языке Rust. Канал я закрыл, и сделал выжимку из материалов, опубликованных в нём. Здесь я расскажу о том, как настроить среду разработчика на Rust в Linux, GNU Emacs и Visual Studio Code и как запрограммировать Arduino Uno на моргание светодиодом.
#![no_std]
#![no_main]
use ruduino::Pin;
use ruduino::cores::current::{port};
#[no_mangle]
pub extern fn main() {
port::B5::set_output();
loop {
port::B5::set_high();
ruduino::delay::delay_ms(1000);
port::B5::set_low();
ruduino::delay::delay_ms(1000);
}
}