Home

Awesome

Notepad++ Tag LEET inline CTags viewer

Description

The original plugin was posted here: https://sourceforge.net/projects/tagleet/

Uses Universal Ctags to index a file and provide inline jump to tags.

This enhancement adds lots of cool features including automated tag file creation and update on saves, another column to the pop-up window showing additional tag file information (i.e., line number, context), autocomplete based on tags file and find references using Notepad++ Find in Files feature from the tags directory.

Compiling

I compiled with MS Visual Studio Community 2017 and this seems to work OK.

For 32-bit:

    [x86 Native Tools Command Prompt for VS 2017]
    C:\> set Configuration=Release
    C:\> set Platform=x86
    C:\> msbuild

For 64-bit:

    [x64 Native Tools Command Prompt for VS 2017]
    C:\> set Configuration=Release
    C:\> set Platform=x64
    C:\> msbuild

Installation

TagLEET 1.4.1.1 and newer requires Notepad++ 8.4.6 or newer.

Copy the:

to the Notepad++ plugins folder:

You will also need to create a subdirectory 'TagLEET' in the same directory as the TagLEET.dll file and put the ctags.exe executable in that directory.
This can be obtained from the ZIP file from the appropriate Release.

Usage

Assign the Plugins => TagLEET => Lookup Tag menu item to a hotkey of your preference. In a source file, put the cursor on a word you would like to lookup and press the hotkey.

First Time Usage

If no tags file exists in the path of the current Notepad++ document, you will be prompted to create one. This assumes the current directory of the current Notepad++ document but for best results, put the tags file in the top level directory of your project. If you were prompted to create the tags file, just press the hotkey again and this time you will get a popup window with the results (if any).

Whenever you directory navigate out of the path of the current tags file and press the hotkey, you will be prompted to create a new one. There is no master tags file, each project can have its own unique tags file.

Normal Operations

While in the popup window:

Key StrokeFunction
NUMPAD(+)increase window size
NUMPAD(-)decrease window size
NUMPAD(/)reset window size
CTRL + NUMPAD(+)increase font size
CTRL + NUMPAD(-)decrease font size
CTRL + NUMPAD(/)reset font size
NUMPAD(*)toggle default / N++ colors
ALT + Atoggle Scintilla Autocomplete
ALT + Rtoggle Recurse Subdirectories
ALT + Stoggle Update on Save

Update on save will auto update the current tags file after each file save. This does not take too much extra resources and makes the TagLEET experience much more dynamic. It is disabled by default.

To navigate to a lookup, press the Return or Space while the item is highlighted in the top listview. Use Tab to switch between the top and bottom panes.

The bottom pane contains a snapshot (read-only) of the text surrounding the active lookup (highlighted in the top list view). By default 2 lines before and 9 lines after are shown; the active lookup line is highlighted and italicized. You can configure the number of lines before and after in the 'Settings' dialog (Peek PRE lines, Peek POST lines).

The popup window losing focus while the top list view is active will auto close the popup window. It will not auto close when losing focus from the bottom edit view; this allows for cut and paste and comparison.

Press ESC to close the popup window or just use the Windows close button.

Recurse Subdirectories

By default, tags files are created with the '-R' option to recurse all files in the current directory as well as all files in the current directory's subdirectories. By turning off this option, tags files are created only based on the current active file in Notepad++.

Global Tags File

You can also configure a global tags file in the 'Settings' dialog for the current language you are using. This file should be generated with at least the following ctags.exe options:

--extras=+Ffq --fields=+n -R

and must use absolute file names in the tags file. This file will be consulted if a match is not found in the local project's tags file. Leaving the 'Settings' dialog empty does not use a global tags file.

Scintilla AutoComplete

This plugin's menu item Autocomplete will always launch the TagLEET autocomplete feature. This is manual. The 'Settings' dialog 'Use Scintilla autocomplete' will use the Scintilla autocompletion functionality with the tags file contents. This is automatically triggered while typing. If a tags file does not exist, this functionality is silently ignored. This does not integrate with Notepad++ autocomplete (Settings => Preferences => Auto-Completion) but also does not conflict (much).