Size: a a a

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

2021 May 18

A

Aragaer in Emacs — русскоговорящее сообщество
в данном случае вообще ничего не возвращает, просто переходит в нужную позицию
источник

MK

Mikhail <@vbifoni... in Emacs — русскоговорящее сообщество
ну вот это прям то что мне нужно
источник

MK

Mikhail <@vbifoni... in Emacs — русскоговорящее сообщество
чето читаю его и вижу, что он хеши какие-то хранит, сериализует, десериализует. Может тупо обойтись более раздробленной файловой структурой?:)
источник

A

Aragaer in Emacs — русскоговорящее сообщество
журнал хеши не хранит, он там оперирует только датой в каком-то формате
источник

A ß in Emacs — русскоговорящее сообщество
что-то у меня pdf-tools ломается
источник

A

Aragaer in Emacs — русскоговорящее сообщество
брейн опирается на org-id в хедлайнах
источник

A

Aragaer in Emacs — русскоговорящее сообщество
а вот roam использует некоторую базу, это да
источник

MK

Mikhail <@vbifoni... in Emacs — русскоговорящее сообщество
ну я скорее к тому, что он чёто мутное творит и разбираться дороже для своего душевного здоровья
источник

A

Aragaer in Emacs — русскоговорящее сообщество
я чуток поразбирался, вроде что-то понял
источник

MK

Mikhail <@vbifoni... in Emacs — русскоговорящее сообщество
мой неокрепший фронтендерский мозг пока не готов к вычитке 1885 строки elisp'а, чтобы понять, как оно полностью устроено
источник

A

Aragaer in Emacs — русскоговорящее сообщество
а, ну это и не нужно 8)
источник

A

Aragaer in Emacs — русскоговорящее сообщество
там смысл примерно такой - для любого таймстемпа он умеет вычислить две вещи - как должен называться файл, куда писать, и в какой хединг там внутри писать
источник

MK

Mikhail <@vbifoni... in Emacs — русскоговорящее сообщество
https://jesseevers.com/org-capture-function/
Во чёто вроде нагуглил
источник

A

Aragaer in Emacs — русскоговорящее сообщество
соответственно когда ты создаешь энтри, он пытается найти в соответствии с этими двумя вещами, если не находит, то создает
источник

A

Aragaer in Emacs — русскоговорящее сообщество
весь остальной код нужен для корректной реализации этих вещей плюс перенос тудушек со вчерашнего дня
источник

A

Aragaer in Emacs — русскоговорящее сообщество
плюс мелочи типа "если в файле уже непусто, но энтри надо вставить, то хорошо бы вставить так, чтобы они шли по порядку
источник

SD

Sergey D in Emacs — русскоговорящее сообщество
Про ужатие undo пока только такое нашёл https://emacs.stackexchange.com/questions/54402/how-to-impliment-a-with-undo-collapse-macro-using-change-group-feature

Там переопределяют макрос atomic-change-group. Работает как надо.

Теперь мне интересно, можно ли как-то функции accept-change-group добавить advice, чтобы после неё запускалось (undo-amalgamate-change-group ,handle). Но не понимаю пока, как этот handle достать. Возможно это?

Оригинал макроса на тут https://github.com/emacs-mirror/emacs/blob/3af9e84ff59811734dcbb5d55e04e1fdb7051e77/lisp/subr.el#L2932-L2962

Разница только в 2961 строчке.
источник

SD

Sergey D in Emacs — русскоговорящее сообщество
Это, конечно, не работает, но хотелось бы как-то так, чтобы не копировать макрос atomic-change-group целиком.

(defmacro with-undo-collapse (&rest body)
 (declare (indent 0) (debug t))
 (cl-flet ((amalgamate #'(lambda (&rest r) (undo-amalgamate-change-group ,handle))))
   `(progn
      (advice-add 'accept-change-group :after ,amalgamate)
      (atomic-change-group
        ,@body)
      (advice-remove "amalgamate"))))
источник

A

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

A

Aragaer in Emacs — русскоговорящее сообщество
Usually, handle is the handle returned by prepare-change-group, in which case all the changes since the beginning of the change-group are amalgamated into a single undo unit.
источник