質問:
ソースコードの独自のライブラリを検索するためのソフトウェア?
panofish
2014-10-14 19:22:40 UTC
view on stackexchange narkive permalink

Python、MySQL、Perl、HTML、CSS、PHP、JavaScript、AutoHotkeyなどの複数のファイル形式でコードを記述/変更します。

ソースコードの個人ライブラリで次の例を検索することがよくあります。新しいコードで再利用するための構文または複雑なロジック。 Perlプログラムの1つで特定の正規表現を検索しているため、 =〜のような不可解な文字列を検索することがあります。

Copernicを使用して既存のコードを検索することもあります。ですが、残念ながら、検索できるのは単語のみであり、プログラミング構文は自動的に無視されます。また、プログラミング言語の構文の色分けもありません。

私の質問は、独自のソースコードライブラリをどのように検索するかです。これに適したソフトウェアは何ですか? Copernicは不完全ですが、それでもこの目的のために私がまだ見つけた最高のツールです。

grepおよびgrepのようなソリューションは素晴らしいですが、UIを備えたWindowsで利用可能なプログラムに最も興味があります。

Total Commander(無料のDouble Commanderも使用できます)を使用し、 `ALT` +` F7`を押して検索します。もちろん、私はTCから検索するよりもはるかに多くの機能を利用でき、Windowsエクスプローラーを使用することは*決して*ありません。
[Search Monkey](http://searchmonkey.embeddediq.com/)を試すこともできますが、WindowsよりもLinuxの方がフル機能です。
6 答え:
Ira Baxter
2015-06-08 07:57:47 UTC
view on stackexchange narkive permalink

Semantic Designsのソースコード検索エンジン(SCSE)は、言語固有のスキャナーを使用して、各ソースファイルを構成要素のレクセムに分割し、すべてにインデックスを付けてから、のコードベース全体でGUIベースの検索を提供します。言語要素の用語。

これには、検索で(言語固有の)空白とコメントを含めたい場合を除いて無視し、実際の値で数値と文字列を検索できるという利点があります。特定のテキストバリアントなどではなく、言語に依存しない方法で。インデックス作成により、数百万行と数万のファイルをほぼ瞬時に検索できます。

対照的に、grepのようなソリューションでは、非常に高速なFSAで、ルートディレクトリの下にあるすべてのファイルを開いて読み取ります。拡張子が多い場合や拡張子がない場合、grepにテキストではないすべてのファイルを無視させるのは難しい場合があります。数万のファイルを開いてgrepで読み取るには、長い時間(数十秒)かかります。コメントだけでなくプログラムコードもスキャンするため、多くの誤検知が発生します。正規表現では空白(改行やコメント)を簡単に無視できないため、書きにくいです。

つまり、SCSEは、書きやすく、誤検知の結果が少ないクエリを使用して、grepよりも高速に検索します。

  • 言語固有のレクセムに従ってファイルにインデックスを付ける
  • クエリは、言語固有のエンティティ(「識別子」)または言語固有のエンティティ(「画像文字列」)を組み合わせて指定できます。 "in COBOL)
  • クエリは空白とコメントをスキップします
  • 誤検知が少なく、grepよりもはるかに高速な検索です
  • ロギング機能により一致を記録できます
  • ヒットをクリックすると、ファイルソースで見つかったテキストが表示されます
  • 見つかった場所で見つかったファイルに対してエディターを起動するように構成できます
  • インデクサーはWindowsで実行されます。結果は複数のユーザー間で共有できます
  • WindowsおよびLinuxで実行されるJavaベースのGUI

Screen shot of search across Linux code base

完全な開示:私はセマンティックデザインの校長

Angelo Fuchs
2014-10-15 15:38:16 UTC
view on stackexchange narkive permalink

grepを使用しています。すべてのコードをファイルシステムの同じパスに保存するときに、Linuxシェルを開いて(ただし、Windowsでもcygwinを介して機能します)、ディレクトリにcdします。

Grepは非常に洗練されたテキストです。あらゆる種類のテキストを検索でき、検索する対象に制限のない検索ツール。

=〜は次のように検索されます:

  grep -r "=〜"。 

は現在のディレクトリを参照しますが、 -r は再帰的に検索します。したがって、プログラムを言語ごとにグループ化した場合、perlディレクトリにcdして、そこでのみ検索できます。

grepには欠点がありますが、最初は速度です。インデックスがないため、何かがヒットするまで、各検索はすべてのコードを順番に実行します。ほとんどの場合、探している特定のコードがどこにあるかについて大まかな考えがあるので、適切なディレクトリのみをgrepします。

もう1つの欠点は、複雑さです。このアプローチをうまく利用するには、しばらく時間をかけてそれらを使用する必要があります。

grepは、知っているlinux / unixコマンドが増えるほど便利になります。たとえば、 find を使用して必要なすべてのファイル(すべてのperlファイルなど)を検索し、 grep を使用してそこに何かがあるかどうかを確認できます。私(Java開発者として)は、jar内のクラスファイルを検索する必要がある場合がありますが、何億ものjarがあり、それがどこにあるのかわかりません。そのため、jarを検索し、その内容を一覧表示して、必要なファイルが含まれているものだけを出力するコマンドラインがあります。同じ手法を使用して、ファイルのコンテンツなども検索できます。

したがって、この特定の問題については、grepを使用します。ただし、一般的には、UNIXに付属しているツールチェーン全体をお勧めします。

a_henderson
2014-12-14 23:30:37 UTC
view on stackexchange narkive permalink

これには Agent Ransackを使用する傾向があります。

  • 無料
  • Microsoft Windows XP(SP3)/ 2003 / Vista / 2008 / 7/2012/8 / 8.1
  • ファイル名とクエリテキストの正規表現をサポート
  • 検索ウィンドウ内のファイルから一致する行をプレビューする
  • 結果をエクスポートするオプション検索条件を保存します

スクリーンショット

Screenshot of Agent Ransack window

Tymric
2014-10-15 14:19:34 UTC
view on stackexchange narkive permalink

CodeSearchはそのような目的のために特別に作成されているため、試すことができます。機能は次のとおりです。

  • クロスプラットフォーム
  • オープンソース
  • ソースコードファイルにインデックスを付けて検索を高速化
  • 正規表現をサポート
  • コード構文の検索をサポートします
  • Emacsパッケージが含まれているため、エディター内から実行できます
kenorb
2015-06-08 18:34:51 UTC
view on stackexchange narkive permalink

便利なツールは次のとおりです。

  • ackは、プログラマー向けに最適化されたgrepのようなツールです。
  • rakは純粋なRubyのgrep置換であり、
  • grinはソースコード(Pythonベース)でいっぱいのディレクトリを検索するのに役立ちます。
  • Silver Searcherは、コードを検索するためのツールです(Ackのクローンですが、機能セットはその後わずかに異なります)。
grinは完全なpythonreをサポートし、デフォルトでは.git、.svnなどのディレクトリをスキップすることは言及する価値があるかもしれません。
veritaS
2017-12-06 02:23:41 UTC
view on stackexchange narkive permalink

私はinforapid検索に大きく依存することを学びました&replace リンク

UIが本当に古く見えるので、最初はこれについて本当に懐疑的でした(2003、Windows10で動作)、しかしそれを数回使用した後、私はプログラムが私のすべての問題に対する答えであり、あらゆる種類の目的に使用できることに気づきました。

  • 検索または置換
  • すべてのファイルタイプ
  • 複数のサブフォルダー
  • プライベートライセンス用のフリーウェア
  • 商用ライセンス25€
  • 高速検索
  • ファイルパス、ファイル&(複数)行の宣言
  • 検索セッションを保存
  • 複数の検索セッションを同時に開始

enter image description here

[tag:gratis]に相当するものについては、http://findandreplace.sourceforge.net/を確認してください。


このQ&Aは英語から自動的に翻訳されました。オリジナルのコンテンツはstackexchangeで入手できます。これは、配布されているcc by-sa 3.0ライセンスに感謝します。
Loading...