Mam następujące dokumenty w mojej dokumentacji:
#+INCLUDE: "code/basic.sv" :src systemverilog :lines "14-117"
Tutaj mam linię 14, class basic extends ..
a mam linię 116 endclass
.
Czy istnieje sposób automatycznego wstawiania liczb 14 i 117 (= 116 + 1), aby nie musiałem ręcznie ich aktualizować za każdym razem, gdy modyfikuję code/basic.sv
?
org-include-src(FILE, LANGUAGE, REGEX_BEGIN, REGEX_END)
org-export-before-processing-hook
celu wstępnego przetworzenia dla numerów linii. Innym sposobem jest po prostu wysłanie wiadomości z prośbą oOdpowiedzi:
Oto kolejna opcja. Ten pozwala ci dostosować wyrażenia regularne dla poszczególnych elementów. Powinien lepiej pasować do niektórych przepływów pracy, ponieważ nie jesteś ograniczony do definicji opartych na rozszerzeniach.
Używać
Zrób coś takiego w swoim pliku org. (Słowo
:lines
kluczowe jest opcjonalne)Funkcja odwiedzi „my-class.sv” i wyszuka te dwa wyrażenia regularne, a następnie zaktualizuje
:lines
słowo kluczowe zgodnie z wynikiem dopasowania.Jeśli go
:range-begin
brakuje, zakres będzie wynosić „-80”.Jeśli go
:range-end
brakuje, zakres będzie wynosić „14-”.Kod
źródło
#+INCLUDE: "code/basic.sv" :src systemverilog :range-begin "// Example 1" :range-end "// End of Example 1"
. Fragment 2:#+INCLUDE: "code/basic.sv" :src systemverilog :range-begin "// Example 2" :range-end "// End of Example 2"
. Wykonanie jest bezbłędne! Dziękujemy za wdrożenie tego tak szybko!Najlepszym sposobem, jaki mogę wymyślić, jest aktualizacja tych liczb bezpośrednio przed eksportem lub oceną.
Aktualizator
Jest to funkcja przechodząca przez bufor. Możesz powiązać go z kluczem lub dodać do haka. Poniższy kod aktualizuje wiersze za każdym razem, gdy zapisujesz plik , ale jeśli Twój przypadek użycia jest inny, po prostu dowiedz się, jakiego haka potrzebujesz! (tryb org jest pełen haków)
Regexps
W tym miejscu definiujesz wyrażenia regularne, które będą używane jako pierwsza i ostatnia linia do uwzględnienia. Możesz podać listę wyrażeń regularnych dla każdego rozszerzenia pliku.
Pracownik w tle
To facet, który wykonuje większość pracy.
źródło
org-export-before-processing-hook
,Every function in this hook will be called with one argument: the back-end currently used, as a symbol
. Ponieważ nie przekazujemy żadnego argumentu, otrzymujemy błądrun-hook-with-args: Wrong number of arguments
. Teraz nie jestem pewien, jaki argument dodać doendless/update-includes
...(&optional dummy)
?(&optional dummy)
faktycznie działało! Ale ciekawy efekt uboczny wywołania funkcji przez hak. Jeśli wywołam funkcję za pomocąM-x
, modyfikuje ona.org
plik za pomocą zaktualizowanych numerów linii. Ale jeśli po prostu wyeksportuję do html i pozwolę hookowi wywołać funkcję, zaktualizowane numery wierszy zostaną odzwierciedlone tylko w eksportowanym pliku, a NIE w.org
pliku.