Obszar edycji#
Centralną część w głównym oknie programu stanowi Obszar edycji #. Jest to miejsce, w którym wyświetlana zostaje zawartość aktualnie wybranego pliku. Użytkując NPP zazwyczaj najwięcej czasu spędzamy właśnie w obrębie Obszaru edycji (np. tworząc lub modyfikując kod). Prawdę mówiąc to cały kontent Obszaru edycji zarządzany jest przez komponent Scintilla, a wszystko co go otacza to właśnie nadbudówka wykonana przez autora NPP.
Inną często używaną nazwą dla Obszaru edycji może być widok/podgląd dokumentu (document view).
Rysunek. Notepad++ - główne okno programu w trybie standardowego wyświetlania z zaznaczonym Obszarem edycji
Notepad++ udostępnia specjalny tryb podwójnego widoku, w którym główne okno programu zawiera dwa niezależne Obszary edycji obok siebie (w układzie pionowym lub poziomym), i każdy z nich posiada swój własny Pasek kart.
Menu kontekstowe Obszaru edycji#
Menu kontekstowe w Obszarze edycji pojawia się po kliknięciu prawym przyciskiem myszy w dowolnym miejscu Obszaru edycji. Struktura tego menu znajduje się w pliku NPP\contextMenu.xml
. Dla osób nieprzepadających za skrótami klawiszowymi jest to idealne miejsce do umieszczenia najczęściej stosowanych poleceń.
Istnieje możliwość wydobycia lub utworzenia przycisku dla większości poleceń NPP i umieszczenia go na Pasku narzędzi.
Rysunek. Notepad++ - domyślne menu kontekstowe Obszaru edycji
W zależności od aktualnego stanu dokumentu w Obszarze edycji niektóre pozycje w menu kontekstowym będą niedostępne (wyszarzone).
Modyfikacja menu kontekstowego Obszaru edycji#
Edycję pliku NPP\contextMenu.xml
można przeprowadzić bezpośrednio w uruchomionym programie. Akurat w przypadku menu kontekstowego nie następuje automatyczny zapisy odpowiadającego mu pliku konfiguracyjnego przy zamykaniu programu. W celu otwarcia pliku można skorzystać z wbudowanego polecenia w samym programie, wystarczy wybrać u góry na Pasku menu kolejno Ustawienia >> Edycja menu kontekstowe
. Po wprowadzeniu i zapisaniu zmian należy uruchomić NPP ponownie.
Na stronie "Context Menu" oraz w samym pliku NPP\contextMenu.xml
znajduje się dokładna instrukcja jego modyfikacji. Wszystkie opcje widoczne w Paska menu (u góry) można dodać do menu kontekstowego (włącznie z opcjami wtyczek) za pomocą składni XML. Dodajemy lub modyfikujemy znacznik <item />
nadając mu odpowiednie atrybuty z wartościami:
- W przypadku opcji wbudowanych trzeba podać nazwę menu widoczną na Pasku menu (np.
MenuEntryName="File"
) oraz nazwę konkretnego polecenia z tego menu, niezależnie od jego poziomu zagnieżdżenia (np.MenuItemName="Save"
). - W przypadku rozszerzeń podajemy jego nazwę widoczną w menu Wtyczki na Pasku menu (np.
PluginEntryName="NppFTP"
) oraz nazwę konkretnego polecenia tego dodatku, które znajduje się w głównym menu wtyczki (np.PluginCommandItemName="Show NppFTP Window"
). Zagnieżdżone polecenia rozmieszczone na dalszych poziomach głównego menu wtyczki nie są obsługiwane (bug 3429).
TextFX lub Emmet w wersji JS). Dla takich wtyczek nie będzie możliwe podpięcie ich poleceń do menu kontekstowego. Od NPP w wersji 6.6.6 menu kontekstowe jest ładowane przed takimi pluginami, dlatego też nie ma do nich dostępu. W niektórych przypadkach ograniczenie to można obejść tworząc skrypt (np. za pomocą wtyczek NppExec lub PythonScript), który potem dodajemy do menu kontekstowego (efekt działania będzie identyczny z ręcznym wywołaniem), ale nie ma gwarancji, że takie obejście zawsze zadziała.
dodatki mogą dodawać elementy poza menu Wtyczki (np.Warto podkreślić, że przy podawaniu wszelkich nazw poleceń wymagana jest ich oryginalna forma angielska #. W tym celu najlepiej chwilowo zmienić język aplikacji Ustawienia >> Ustawienia... >> Język >> English
. Zamiast nazwy wbudowanego polecenia można podać jego numer ID, ale trzeba go wydobyć z pliku NPP\localization\english.xml
, resource.h
lub menuCmdID.h
.
W menu kontekstowym można grupować wiele poleceń, dzięki czemu utworzymy listę rozwijaną (czyli submenu, ale dostępny jest tylko jeden poziom zagnieżdżenia). Wystarczy do każdej pozycji dodać atrybut z wartością FolderName="nazwa_submenu"
. Czasami nazwa danego polecenia może być zbyt długa lub oryginalna wersja angielska może nam nie odpowiadać, zawsze możemy ją nadpisać własną nazwą za pomocą atrybutu z wartością ItemNameAs="nowa_nazwa"
. Separator między poleceniami/grupami wstawiamy przy użyciu nowego elementu <item />
z atrybutem id="0"
.
Oto kilka przykładowych definicji:
<!-- Wbudowane opcje (identyfikacja po nazwie) -->
<Item MenuEntryName="Edit" MenuItemName="Cut" />
<Item MenuEntryName="Edit" MenuItemName="Copy" />
<!-- Wbudowane opcje (jak wyżej, ale identyfikacja po ID) -->
<Item id="42001" />
<Item id="42002" />
<!-- Separator -->
<Item id="0" />
<!-- Opcje pluginów zgrupowane we własnym folderze -->
<Item FolderName="Plugin commands" PluginEntryName="MIME Tools" PluginCommandItemName="Base64 Encode" />
<Item FolderName="Plugin commands" PluginEntryName="MIME Tools" PluginCommandItemName="Base64 Decode" />
<!-- Separator -->
<Item id="0" />
<!-- Wbudowane opcje z nadpisaniem ich nazw -->
<Item MenuEntryName="Edit" MenuItemName="UPPERCASE" ItemNameAs="Duże litery" />
<Item MenuEntryName="Edit" MenuItemName="lowercase" ItemNameAs="Małe litery" />