Notepad ++ benutzerdefinierte Regionen mit Faltung

70

Ich kann nicht herausfinden, wie Notepad ++ so konfiguriert wird, dass Regionen für benutzerdefinierte Schlüsselwörter angezeigt werden.

Ich habe eine große Trace-Datei, die den Beginn und das Ende einer Prozedur zeigt. Die Trace-Datei sieht folgendermaßen aus:

Beginn abc.def;
   ...
   Beginn ghi.jkl;
   ...
   Ende ghi.jkl;
   ...
Ende abc.def;

Ich möchte diese Regionen so falten:

[+] Beginn abc.def;

oder

[-] Beginn abc.def;
       ...
[+]    Beginn ghi.jkl;
       ...
    Ende abc.def;

Wie konfiguriere ich meinen Notepad ++, um dies anzuzeigen? Ist es möglich? Haben Sie weitere Vorschläge?

Stephan Schielke
quelle
stackoverflow.com/questions/9251858/hide-comments-in-notepad Duplicate (2010 ist das früheste, das ich finden konnte).
Wolfpack'08

Antworten:

55

Eine andere einfache Möglichkeit besteht darin, eine Kommentarmarkierung gefolgt von einem offenen Block zum Beginn eines Blocks und eine Kommentarmarkierung gefolgt von einem Endblock zum Beenden eines Blocks hinzuzufügen. In C, C ++, Java, Javascript usw. würde es so aussehen:

//{

//}
Marcelo Teixeira Ruggeri
quelle
2
Ab NPP v6.4.3 scheint der schnelle und einfache benutzerdefinierte Dialog weg zu sein (oder in die benutzerdefinierte Sprachsyntax gerollt zu sein). Daher ist es nicht trivial, einer integrierten Sprache einfach eine zusammenlegbare Regionssyntax hinzuzufügen. Diese Lösung von Marcelo ist jedoch sehr schnell und einfach und funktioniert in KKW 6.4.3.
Todd
7
Vielen Dank! Jetzt mache ich: //{ #region LOADINGund //} #endregion LOADINGin Javascript
Szymon Toda
1
Wie wird "Kommentarbefehl hinzufügen" ausgeführt? Ich habe den gleichen Code wie gezeigt, aber keine Faltoption. Ich nehme an, der Block muss mit Alt + h ausgewählt und ausgeblendet werden.
Goufalite
2
Ich benutze Notepad++ 6.7.9.2. In dieser Version müssen Sie den Abstand zwischen dem Anfang des Kommentars und der Klammer entfernen. Funktioniert //{aber // {nicht.
Jeremysawesome
54

Für Version 6.5.5 und höher:

Unter dem Menü " Sprache " gibt es ein Menü namens " Definieren Sie Ihre Sprache ... ".

Geben Sie hier die Bildbeschreibung ein

Auf der Registerkarte "Ordner & Standard" befindet sich eine Gruppe namens "Code einklappen", in die Sie ein "Öffnen" - und ein "Schließen" -Keyword eingeben können.

Code einklappen

Für Versionen älter als 6.5.5 :

Unter dem Menü " Ansicht " befindet sich ein Menü namens " Benutzerdefinierter Dialog ... ".

Ansicht Definieren Sie Ihre Sprache

Auf der Registerkarte "Folder & Default" können Sie ein "Folder Open Keyword" und ein "Folder Close Keyword" eingeben.

Ordner öffnen Schließen Schlüsselwort

Stephan Schielke
quelle
2
Gibt es eine Möglichkeit, diese zu einer vorhandenen Sprachdefinition hinzuzufügen? Konkret könnte ich Kommentare hinzufügen, um Faltabschnitte zu erstellen, z. B.: / * <privateMethods> * / ... [viel Code] ... / * </ privateMethods> * /
RSG
Wie Sie auf dem Bild sehen können, gibt es eine Möglichkeit, die Sprachdateien zu importieren und zu exportieren. Notepad ++ speichert die vorhandenen Sprachkonfigurationen. Vielleicht können Sie sie in die benutzerdefinierten importieren und bearbeiten. Viel Glück.
Stephan Schielke
5
In Version 6.5.5 befindet sich dieser Dialog im Menü "Sprache". Ich habe gerade #region end #endregion hinzugefügt und das Falten funktioniert großartig!
Adg
1
@adg: Ich möchte auch // #regionJavascript falten. Wie hast du es gemacht und zu welcher Sprache hast du es hinzugefügt?
Robert Koritnik
@StephanSchielke, es ist jetzt unter "Sprache >> Definiere deine Sprache"
Pacerier
14

Ich habe ein ähnliches Problem. Ich möchte ein benutzerdefiniertes Tag wie #region / #endregion hinzufügen, um beliebige Faltpunkte in Sprachen zu erstellen, die dies nicht unterstützen. Insbesondere versuche ich dies für PHP zu tun.

Nach ein oder zwei Stunden Recherche scheint es aufgrund des zugrunde liegenden Szintilla-Lexers ziemlich schwierig zu sein, eine vorhandene Sprache zu ändern, und das Schreiben eines Plugins ist möglicherweise der einzige Weg, dies zu erreichen.

Ich habe jedoch eine anständige Problemumgehung entdeckt:

Wickeln Sie den Code, den Sie falten möchten, in folgende Kommentare ein:

#{ 
...
#}

Bewegen Sie dann den Cursor vor die geöffnete Klammer und drücken Sie CTRL+ ALT+ b, um den gesamten Block hervorzuheben, gefolgt von ALT+ h, um ihn auszublenden.

Es ist eine andere Operation als das Falten, aber es funktioniert zur Not.

Kevin Jhangiani
quelle
Was machen diese Verknüpfungen genau? Sie arbeiten nicht für mich, maube, es ist ein Plugin, das Sie installiert haben?
Hikari
2
Alt + H hat funktioniert, aber es scheint nur vorübergehend zu sein. Ich muss es nur erweitern, damit es verschwindet
Hikari
Hallo! Zumindest hättest du erwähnen können, dass du meine Antwort kopiert hast, genau wie "user1881282", aber ich mache mir darüber keine großen Sorgen. Einen schönen Tag noch !
Marcelo Teixeira Ruggeri
1
STRG + ALT + b, um den Block hervorzuheben. (Ich bin nicht der Meinung, dass dies nur aus Marcelos Antwort kopiert wurde - das erwähnt nicht die Verwendung von Block Select und Hide anstelle von Folding, was ein wichtiger Punkt in dieser Antwort ist)
Nick Rice
Vielen Dank für die Korrektur des Tastenanschlags @Nick Rice. Ich habe die Antwort auf STRG + ALT + B korrigiert, um den Block hervorzuheben, der anscheinend funktioniert (der Cursor muss zwischen # und {Zeichen stehen)
Kevin Jhangiani

4

Ich habe Marcelos Antwort verwendet, um dies für mich selbst (in Perl) mit einer Änderung zu lösen ...
Wenn ich ein Leerzeichen zwischen dem Kommentarsymbol und der Klammer einfügen würde, würde es nicht funktionieren. Es musste sofort platziert werden nach:

#START example
################{

print "Hi there! ";
print "How are you?\n";

#}END example

Beachten Sie, dass wenn ich:

#END example }

Mit der Klammer nach dem Text funktioniert es auch nicht


0

!! Haftungsausschluss: Total noob bei PHP !!

Angenommen, Sie verpacken Ihr PHP in HTML, können Sie benutzerdefinierte Abschnitte mit <?php and?> Definieren .

Ex:

<html>
<head></head>
<body>
<?php 
$cities[1] = "Phoenix";$cities[2] = "Tucson";$cities[3] = "Flagstaff";  
$capitals['CA'] = "Sacramento";$capitals['TX'] = "Austin";$capitals['OR'] = "Salem";    
$cities[] = "Phoenix";$cities[] = "Tucson";$cities[] = "Flagstaff"; 
echo "Here are cities: $cities[1]";echo nl2br("\n");
?>
</br>
<?php
$cities = array( "Phoenix","Tucson","Flagstaff");   
$capitals = array( "CA" => "Sacramento","TX" => "Austin","OR" => "Salem",);
echo $capitals['TX'];echo nl2br("\n");  
?>
<body>
</html>

Mit Notepad ++ können Sie die Abschnitte dann beliebig reduzieren und die Abschnitte mit "#" kennzeichnen. Ich lerne nur PHP, daher ist mein Code möglicherweise nicht großartig. Es ist immer noch ein fortlaufender Prozess.


Vielen Dank! Genau das, was ich für PHP brauchte :)
Prid

-2

Wenn es sich um SQL handelt, funktioniert die Kapselung Ihres Codes mit BEGIN und END gut. Die BEGIN-Anweisung sowie alle Kommentare, die Sie in derselben Zeile hinzufügen, werden angezeigt.

z.B:

BEGIN --creating temp table with eligible users

   ...code

END

-2

SCHRITT 1 : Fügen Sie einen eindeutigen Schlüssel mit Öffnen und Schließen hinzu (dh

#1
{{{
#2
{{{
#2
}}}
##
}}}

Verwenden Sie Einrückungen und / oder Kommentare, um die Verschachtelungsebene anzugeben.

Schritt 2 : {CTRL}-HWenn Sie fertig sind. Ersetzen Sie alle '{{{' und '}}}'.

SCHRITT 3 : Kommentarleiste (App).

Wolfpack'08
Diese Methoden sind alle langsam.
Wolfpack'08
? Sie müssen also jedes Mal, wenn Sie eine neue hinzufügen, die Strg-Taste H suchen und ersetzen?
Pacerier