Size: a a a

Emacs — русскоговорящее сообщество

2021 October 20

DL

Dmytro Lispyvnyi '(🌲... in Emacs — русскоговорящее сообщество
единственное, что мне видится - это стат анализатор, который берёт форму с let-ом в виде кода, и эвалит постепенно добавляя новый биндинг

типа, есть такое выражение

(let* ((a 1)
      (b (1+ a))
      (c (1- b)))
 (some-fn c))


парсер берёт, и делает из него такое (удалили все биндинги кроме одного и выставили его в качестве body)

(let* ((a 1))
 a)

эвалим, получаем локальный a

делаем два:
(let* ((a 1)
      (b (1+ a)))
 b)


эвалим, получаем локальный b

итп

но тут есть одно но, let-like форм не так уж и мало, а если учитывать всякие деструктурирующие то там ваще караул
ну и да, есть ещё и макросы :3
источник

a

akater in Emacs — русскоговорящее сообщество
let-sexp это типа любое выражение вида (let (…) …)?  Мне кажется, куда понятнее говорить «let-форма».  Я вот не въехал, что за сексп имеется в виду — binding, что ли.
источник

EV

Eugene Vagin in Emacs — русскоговорящее сообщество
Let-sexp'ом я назвал, возможно, несколько некорректно, связывание переменной и значения в секции переменных let-выражения. В духе (a (+ 1 2)).

В общности это список из двух элементов, где
- car - литерал, которому мы будем присваивать значение;
- cadr - присваемое значение.
источник

EV

Eugene Vagin in Emacs — русскоговорящее сообщество
Выглядит сложно.. Я тогда попозже пришлю, как это у меня в текущей реализации сделано.
источник

a

akater in Emacs — русскоговорящее сообщество
Значит, это то, что я и подумал.  Ну это let binding называют.
источник

EV

Eugene Vagin in Emacs — русскоговорящее сообщество
Да, чёт забыл.
источник

TM

Timur M. in Emacs — русскоговорящее сообщество
Возможно, окажется полезной ещё настройка yank-pop-change-selection ("Whether rotating the kill ring changes the window system selection…").
источник

f

flusq in Emacs — русскоговорящее сообщество
Spasibo
источник

D

Demoninhatter in Emacs — русскоговорящее сообщество
когда елисп редачу компани чет медленно так обновляется (после добавления переменно/функции  ее достаточно долго нету в комплишене), че за дела? 🤨
источник

A ß in Emacs — русскоговорящее сообщество
хз
источник

A ß in Emacs — русскоговорящее сообщество
дефолт вроде сразу подхватывает
источник

A ß in Emacs — русскоговорящее сообщество
переходи на dabbrev
источник

A ß in Emacs — русскоговорящее сообщество
"настоящее" дополнение не нужно
источник

a

akater in Emacs — русскоговорящее сообщество
hippie-expand тоже круто.  Некоторые деды говорят, это их команда номер 1.
источник

D

Demoninhatter in Emacs — русскоговорящее сообщество
угу..круто комплитит, правда не о что надо
источник

a

akater in Emacs — русскоговорящее сообщество
Ну вот по всей видимости его надо уметь использовать.  Мне весьма нравится, но я в основном его тыкаю когда company не помогает.
источник

A ß in Emacs — русскоговорящее сообщество
надо начинать так, чтобы комплитило что нужно
источник

D

Demoninhatter in Emacs — русскоговорящее сообщество
ну вот dabbrev норм
источник

EV

Eugene Vagin in Emacs — русскоговорящее сообщество
Можно ли сделать так, чтобы сначала запускался dabbrev, а потом, например, после трёх непопаданий, completion?
источник

A ß in Emacs — русскоговорящее сообщество
можно
источник