|
inouenです。
#03189 で関数宣言文の検出条件を追加いたしましたが
一部説明不十分の部分があったので下記に読みかえて下さい。
'(' が見つかった場合、search wordの次の有効文字として
"今見つかった最初の" ( が続く場合 関数宣言文
そうでなければ 関数リターン値、関数パラメータ
関数宣言文へジャンプしようとして次のような複数のエントリが表示されました。
###### inGraph ################################################
1.tester.java(66) : new process(inGraph()) {
// make new timer object
2.flowcollector.java(272) : dumpTimer = new Timer(inGraph(), interval) {
...
// start timer
dumpTimer.set(dumpInterval);
3.flowcollector.java(452) : public ProtocolGraph inGraph()
4.configurator.java(170) : timer = new OS.Timer(inGraph(), exp_time){
####### Timer ####################################################
5.OS\timer.java(87) : public Timer(ProtocolGraph e, long dt) {
6.tcpclient.java(142) : (new OS.Timer(localHost, start_time){
7.tcpclient.java(184) : (new OS.Timer(localHost, Net.seconds(sleeptime
3, 5行が inGraph, Timer 関数の宣言文に相当します。
1,2,4行のinGraph()はリターン値を関数コールパラメータとして使用しています。
2,4,6,7, new Timer(...) の行は Timer Objectの生成文で関数宣言文ではありませ
んが、
#30189の条件のみでは関数宣言文と見なされてしまうようです。
これらの例は Javaの場合ですが、C++, C# 等でも同じようなことがあると思います。
(多少形式が違うかも知れませんが)
関数宣言文等のみを検出しようとすると 構文解析をする必要があるのでしょうが
エディタにそれを要求するのは さすがに行き過ぎですから...
#30189での関数宣言文等検出方法は、多少のもれ、行き過ぎはあるでしょうが
比較的容易に実現出来る方法はないか考えたものです。
よろしく検討お願いします。
|
|