Help us understand the problem. What is going on with this article?

plantumlの図の要素とソース行を紐付けるために、行番号とを追加する

テキストファイルからUML図を生成できるplantumlはとても便利です。
しかし、図を見て更新したい箇所がある場合に、ソースの位置を特定するのにワンクッションあります。

そこで、UML図にソースファイルの行番号を付加することを考えました。
以下のようなソースファイルがあるとします。

act.pu
 1: @startuml
 2: 
 3: start
 4: 
 5: if (Graphviz installed?) then (yes)
 6:   :process all\ndiagrams;
 7: else (no)
 8:   :process only
 9:   __sequence__ and __activity__ diagrams;
10: endif
11:
12: stop
13: @enduml

このソースファイルからは、以下の図が生成されます。

LOwn3i8m34HtVuN7zXTWW8sVG8ginAMMKYV4QQNmzHWcsExUdKvtjKwjxri6-2e0MN2wDQhh8IyKTPepfykCVMN5QR3DW7YghKGsGq_lceGUZJOx0sTZdBJyTOhcuJu4u-VE6Za494qEA7Ovf0y7Fnk-jtp-bFe6.png

awkで、ソースファイルの”:”に行番号をつけることにします。

$ cat act.pu | gawk '{print gensub(/(^ *:)/, "\\1**"NR"**:", $0)}'

以下のように図に行番号が追加されるので、図を変更したい場合は、その行番号付近を修正すれば良いことがわかります。

JOun2iCm40JxUyMLjXuGWbF4NJuH448wnmBvvEXaW_pwN48ATxl3iEmerPMwBGdWbm3YXDsZk7NUuu6HbQP4uTvZdOcnQoGz80x6N8mPrf8zYQ0wJmxHlOfRv0QKXB3Z_3Ul9pDpQagj5Nfln9wiHST1WVCrxh4s1QSbNPs-t_8AenPz-W40.png

このくらいの図ではあまりメリットは感じられませんが、もう少し大きくなると瞬時にわかって便利です。
副次効果としてユニークなIDがつくメリットもあります。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away