Saya punya di bawah ini dalam dokumentasi saya:
#+INCLUDE: "code/basic.sv" :src systemverilog :lines "14-117"
Di sini baris 14 adalah tempat saya miliki class basic extends ..
dan baris 116 adalah tempat saya punya endclass
.
Apakah ada cara untuk memasukkan angka 14 dan 117 secara otomatis (= 116 +1) sehingga saya tidak perlu memperbaruinya secara manual setiap kali saya memodifikasinya code/basic.sv
?
org-include-src(FILE, LANGUAGE, REGEX_BEGIN, REGEX_END)
org-export-before-processing-hook
ke preprocess untuk nomor baris. Cara lain hanya mengirim fitur mail permintaan ke mailing list org :)Jawaban:
Ini pilihan lain. Yang ini mari kita sesuaikan ekspresi reguler berdasarkan per-sertakan. Seharusnya lebih cocok dengan beberapa alur kerja karena Anda tidak terbatas pada definisi berbasis ekstensi.
Menggunakan
Lakukan sesuatu seperti yang berikut ini di file org Anda. (Kata
:lines
kunci adalah opsional)Fungsi akan mengunjungi "my-class.sv" dan mencari dua regexps, dan kemudian akan memperbarui
:lines
kata kunci sesuai dengan hasil pertandingan.Jika
:range-begin
tidak ada, kisarannya adalah "-80".Jika
:range-end
tidak ada, kisaran akan menjadi "14-".Kode
sumber
#+INCLUDE: "code/basic.sv" :src systemverilog :range-begin "// Example 1" :range-end "// End of Example 1"
. Snippet 2:#+INCLUDE: "code/basic.sv" :src systemverilog :range-begin "// Example 2" :range-end "// End of Example 2"
. Eksekusi tanpa cacat! Terima kasih telah menerapkan ini secepat ini !Cara terbaik yang dapat saya pikirkan adalah memperbarui nomor-nomor ini segera sebelum mengekspor atau sebelum mengevaluasi.
Pembaru
Ini adalah fungsi yang melewati buffer. Anda dapat mengikatnya ke kunci, atau menambahkannya ke kail. Kode berikut memperbarui baris setiap kali Anda menyimpan file , tetapi jika kasus penggunaan Anda berbeda, cari tahu yang mana yang Anda butuhkan! (org-mode penuh dengan kait)
Regexps
Di sinilah Anda mendefinisikan regexps yang akan digunakan sebagai baris pertama dan terakhir yang akan disertakan. Anda dapat memberikan daftar regexps untuk setiap ekstensi file.
Pekerja latar belakang
Ini adalah pria yang melakukan sebagian besar pekerjaan.
sumber
org-export-before-processing-hook
,Every function in this hook will be called with one argument: the back-end currently used, as a symbol
. Karena kita tidak melewati argumen apa pun, kita mendapatkan kesalahanrun-hook-with-args: Wrong number of arguments
. Sekarang saya tidak yakin argumen apa yang akan ditambahkanendless/update-includes
...(&optional dummy)
?(&optional dummy)
sebenarnya berhasil! Tetapi efek samping yang menarik dari memanggil fungsi melalui hook. Jika saya memanggil fungsi menggunakanM-x
, itu memodifikasi.org
file dengan nomor baris yang diperbarui. Tetapi jika saya hanya mengekspor ke html dan mengizinkan kait untuk memanggil fungsi, nomor baris yang diperbarui hanya tercermin dalam file yang diekspor, BUKAN dalam.org
file.