Skip to content

vinsworldcom/nppColumnTools

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

96 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Notepad++ Column Tools

Description

This Notepad++ plugin provides highlighting of the current column in the same way the "Settings" -> "Preferences" -> "Editing" -> "Enable current line highlighting" option provides highlighting of the current line. It also provides a "ruler" showing column numbers much the same as line numbers from "Settings" -> "Preferences" -> "Editing" -> "Display line number".

This was more of a proof of concept. I wrote the column highlighting in about 8 hours while looking at the demo plugin, the Scintilla documentation, other examples of working plugins and my little (to almost non-existent) experience with C/C++.

The ruler functionality is "borrowed" from the NppHorizontalRuler plugin.

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

Copy the:

  • 32-bit: ./bin/ColumnTools.dll
  • 64-bit: ./bin64/ColumnTools.dll

to the Notepad++ plugins folder:

  • In N++ <7.6, directly in the plugins/ folder
  • In N++ >=7.6, in a directory called ColumnTools in the plugins/ folder (plugins/ColumnTools/)

Usage

Plugins => Column Tools and select the option(s) you want.

Column Highlight

To be fair, this plugin doesn't really "highlight" the current column; rather, uses the edge column marker to do the job. Thus, if you're using the edge column marker, you "lose" it, but this plugin should remember the state on startup so when you disable the plugin, the original edge column marker state should be returned.

Ruler

The horizonal ruler displays across the top of each tab in each Scintilla view in Notepad++ (both main and secondary, if visible).

Set Vertical Line

Double-click on the ruler to set a vertical line at that column. If Column Highlight is enabled, the vertical line will not stay and will move with the cursor. This is a Scintilla limitation and can not be "fixed" with this plugin. To keep the vertical line in position, disable Column Highlight.

Multiple Vertical Lines (Scintilla EDGE_MULTILINE)

For multiple vertical lines SHIFT+double-click in the ruler. Again, if Column Highlight is enabled, the vertical lines will not stay and will move with the cursor. This is a Scintilla limitation and can not be "fixed" with this plugin. To keep the vertical lines in position, disable Column Highlight. To remove all vertical lines, use CTRL+double-click in the ruler. Again, this is a Scintilla limitation; individual vertical lines cannot be removed, it's all or nothing.

NOTE: The ruler does not line up correctly unless SC_TECHNOLOGY_DEFAULT is set.

Settings

Backspace Unindent

This implements the Scintilla SCI_SETBACKSPACEUNINDENTS feature.

Indent Guides LookForward

This implements the Scintilla SCI_SETINDENTATIONGUIDES feature to SC_IV_LOOKFORWARD which is supposedly "good for Python", but seems to be good for all languages as well despite what it says for SC_IV_LOOKBOTH being "good for most languages".