Obszar edycji#

Centralną część w głównym oknie programu stanowi Obszar edycji # (patrz opisowa grafika). 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).

 Notepad++ - główne okno programu w trybie standardowego wyświetlania z zaznaczonym Obszarem edycji

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).

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.

Notepad++ - domyślne menu kontekstowe Obszaru edycji

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:

Niektóre # dodatki mogą dodawać elementy poza menu Wtyczki (np. 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.

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:

  1. L
  2. K
  3. T'
  4. T
  5. A
  6. O
  7. Z'
  8. Z
  9. #
<!-- 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" />
Pasek społecznościowy

SPIS TREŚCI AKTUALNEJ STRONY

Obszar edycji (H1) Menu kontekstowe Obszaru edycji (H2) Modyfikacja menu kontekstowego Obszaru edycji (H3)