J'ai ci-dessous dans ma documentation:
#+INCLUDE: "code/basic.sv" :src systemverilog :lines "14-117"
Ici, la ligne 14 est où j'ai class basic extends ..
et la ligne 116 est où j'ai endclass
.
Existe-t-il un moyen d'insérer automatiquement les nombres 14 et 117 (= 116 + 1) afin de ne pas avoir à les mettre à jour manuellement chaque fois que je modifie le code/basic.sv
?
org-include-src(FILE, LANGUAGE, REGEX_BEGIN, REGEX_END)
org-export-before-processing-hook
pour prétraiter les numéros de ligne. Une autre façon consiste simplement à envoyer un courrier de demande de fonctionnalité à la liste de diffusion de l'organisation :)Réponses:
Voici une autre option. Celui-ci vous permet de personnaliser les expressions régulières par inclusion. Il convient mieux à certains flux de travail, car vous n'êtes pas limité aux définitions basées sur les extensions.
Utiliser
Faites quelque chose comme ce qui suit dans votre fichier d'organisation. (Le
:lines
mot-clé est facultatif)La fonction visitera "my-class.sv" et recherchera ces deux expressions régulières, puis elle mettra à jour le
:lines
mot - clé en fonction du résultat de la correspondance.S'il
:range-begin
manque, la plage sera "-80".S'il
:range-end
manque, la plage sera "14-".Le code
la source
#+INCLUDE: "code/basic.sv" :src systemverilog :range-begin "// Example 1" :range-end "// End of Example 1"
. 2 Snippet:#+INCLUDE: "code/basic.sv" :src systemverilog :range-begin "// Example 2" :range-end "// End of Example 2"
. L'exécution est sans faille! Merci d'avoir implémenté cela aussi rapidement!La meilleure façon de penser est de mettre à jour ces chiffres immédiatement avant l'exportation ou avant l'évaluation.
Le programme de mise à jour
C'est la fonction qui passe par le tampon. Vous pouvez le lier à une clé ou l'ajouter à un crochet. Le code suivant met à jour les lignes chaque fois que vous enregistrez le fichier , mais si votre cas d'utilisation est différent, découvrez simplement le crochet dont vous avez besoin! (le mode org est plein de crochets)
Les Regexps
C'est là que vous définissez les expressions rationnelles qui seront utilisées comme première et dernière lignes à inclure. Vous pouvez donner une liste d'expressions rationnelles pour chaque extension de fichier.
Le travailleur d'arrière-plan
C'est le gars qui fait la plupart du travail.
la source
org-export-before-processing-hook
,Every function in this hook will be called with one argument: the back-end currently used, as a symbol
. Comme nous ne transmettons aucun argument, nous obtenons l'erreurrun-hook-with-args: Wrong number of arguments
. Maintenant, je ne sais pas à quel argument ajouterendless/update-includes
...(&optional dummy)
?(&optional dummy)
réellement fonctionné! Mais un effet secondaire intéressant d'appeler la fonction via le crochet. Si j'appelle la fonction à l'aideM-x
, elle modifie le.org
fichier avec les numéros de ligne mis à jour. Mais si j'exporte simplement en html et que le crochet appelle la fonction, les numéros de ligne mis à jour sont reflétés uniquement dans le fichier exporté, PAS dans le.org
fichier.