2015-02-07 17 views
12

Jedes Mal, wenn ich eine Funktion in hunderten von Dateien suche, sehe ich so viele Übereinstimmungen in Kommentaren, die keinen Code-Effekt haben.Sublime Text - Kommentare in der Suche ausschließen

Kann jemand den Suchbereich von Sublime Text auf echten Code beschränken und Kommentare ausschließen?

Ich verwende Sublime Text 3 für die Entwicklung eines C++ - Programms.

+1

Ich bin die Person, die die +100 Bounty angeboten hat. Ich lasse diesen Kommentar nur für den Fall, dass jemand einen Kommentar verwenden möchte, um mich etwas zu fragen. Sie können auch in meiner Antwort kommentieren, wenn Sie möchten. – sergioFC

Antwort

5

Ich habe ein Plugin, die in einem bestimmten Bereich für eine bestimmte Zeichenfolge zu suchen. Der Standardauswahlbereich für den Bereich ist , der effektiv außerhalb von Kommentaren sucht. Der zu suchende Text wird aus der aktuellen Auswahl übernommen. Die Ergebnisse sind in dem Drop-Down-Menü präsentiert

Grundsätzlich I kombiniert zwei API-Methoden:

  • view.find_all(pattern), die für ein Muster in der gegebenen Ansicht sucht.
  • view.match_selector(position, scope_selecor), die überprüfen, ob die angegebene Position innerhalb des angegebenen Bereichs liegt.
+0

Ihre Lösung erfüllt alle Bounty-Anforderungen, so dass Sie das Kopfgeld verdienen. Gut gemacht. – sergioFC

+0

Danke, sagen Sie mir, wenn Sie Hilfe brauchen, um es zu optimieren – gwenzek

+0

Gern geschehen. Ich habe versucht, das Plugin zu ändern, um beim Tippen neue Wörter zu finden, aber ich konnte es nicht tun. Das wäre cool, aber beachte, dass es zumindest für mich nicht wirklich notwendig ist. – sergioFC

3

Sie könnten Regex verwenden, um Muster zu finden, die mit der von Ihnen angegebenen Regex übereinstimmen. Entwerfen Sie die Regex nach Ihren.

Sie können regex geben, indem Sie auf die ‚Regular Expression‘ Wendeflagge

By this way you can search without comments

Beispiel

Sie können diese Regex haben Ihren Fall entsprechen, wenn Sie allein passen in Einzel wollen Zeilenkommentare.

^(?!\/\/)([^\/\n]*)YOUR_SEARCH_TERM 

Wenn Sie auch in mehrzeiligen Kommentaren übereinstimmen möchten, verwenden Sie dies.

^(?!(\/\/|(\/\*(.|\n)*([^\*])(?=\/))))YOUR_SEARCH_TERM 
+1

Kommentare haben ihre eigene Komplexität. Könnten Sie bitte eine vollständige Antwort geben? – barej

+0

Schauen Sie jetzt oben. @barej –

+0

Aber es in Kommentaren auch für mich gesucht: [Bild] (http://i.stack.imgur.com/uu8h0.png) – barej