Version 0.4.17
A Notepad++ plugin that automatically displays detailed character encoding information in the status bar for the character under the cursor.
GitHub: https://github.com/Ruberoid/npp_emoji_description
When you move the cursor through text, the plugin automatically displays for the current character:
| Field | Example for Т |
Shown by default |
|---|---|---|
| Code point | U+0422 |
yes |
| HTML entity | (html) Т |
yes |
| UTF-8 bytes, hexadecimal | (hex) 0xD0 0xA2 |
no |
| UTF-8 bytes, decimal | (dec) 208 162 |
no |
UTF-8 bytes, octal — the notation git status uses for non-ASCII bytes |
(oct) \320\242 |
no |
| Description — the Unicode character name, handy for telling look-alike characters apart; covers the entire code space including emoji | CYRILLIC CAPITAL LETTER TE |
yes |
The layout follows two rules. Everything tagged (hex), (dec) and (oct) is
the same UTF-8 byte sequence in a different base, so switching between them
never changes what you are looking at, only how it is written; U+ and the
description need no tag because they identify themselves. The description always
comes last — it is the only variable-length field, so the short technical ones
keep stable positions as the caret moves.
Each field can be toggled individually from the Plugins → Emoji Description
menu, so you can show just the information you care about. Your choices are
remembered between sessions.
Plugins → Emoji Description → Copy character details... opens a dialog
describing the character at the caret with every field, whatever the status
bar happens to be showing:
Character Т
Code point U+0422
HTML entity Т
UTF-8 bytes (hex) 0xD0 0xA2
UTF-8 bytes (dec) 208 162
UTF-8 bytes (oct) \320\242
Description CYRILLIC CAPITAL LETTER TE
The character also gets its own large field — which is the whole point for the
ones you cannot see, since NO-BREAK SPACE and friends show up as an empty box
rather than as nothing at all. Copy to clipboard takes the whole block; the
text is preselected on open so Ctrl+C does the same, and dragging over part of
it copies just that part. The dialog follows the Notepad++ theme, dark mode
included.
The clipboard is only ever written by pressing that button. There is no default
keyboard shortcut and no click gesture that could fire by accident — if you want
a key for it, the command appears in Settings → Shortcut Mapper → Plugin commands like any other.
- All ASCII characters
- All Unicode characters (including Cyrillic, Chinese, etc.)
- Emoji and other characters outside the Basic Multilingual Plane (BMP)
- Full support for multi-byte UTF-8 sequences
With the default fields, for Cyrillic Т:
U+0422 | (html) Т | CYRILLIC CAPITAL LETTER TE
With every field enabled, for Т, A and 😀:
U+0422 | (html) Т | (hex) 0xD0 0xA2 | (dec) 208 162 | (oct) \320\242 | CYRILLIC CAPITAL LETTER TE
U+0041 | (html) A | (hex) 0x41 | (dec) 65 | (oct) \101 | LATIN CAPITAL LETTER A
U+1F600 | (html) 😀 | (hex) 0xF0 0x9F 0x98 0x80 | (dec) 240 159 152 128 | (oct) \360\237\230\200 | GRINNING FACE
The plugin prepends the document type Notepad++ normally shows in that status bar
segment, so the full line reads e.g. C++ source file | U+0422 | ….
-
Download the latest release from Releases page
-
Choose the appropriate ZIP file for your Notepad++ version:
EmojiDescription_x64_*.zipfor 64-bit Notepad++EmojiDescription_x86_*.zipfor 32-bit Notepad++EmojiDescription_arm64_*.zipfor ARM64 Notepad++
-
Extract the DLL file
-
Copy it into a
EmojiDescriptionsubfolder of your Notepad++pluginsdirectory, so that the final path isplugins\EmojiDescription\EmojiDescription.dll. Thepluginsdirectory depends on how Notepad++ was installed:- Standard installer (e.g.
C:\Program Files\Notepad++):C:\Program Files\Notepad++\plugins\EmojiDescription\ - Per-user / "Don't use %APPDATA%" installs and portable builds:
%APPDATA%\Notepad++\plugins\EmojiDescription\
If unsure, check
Settings → Import → Import plugin(s)...or look at where your existing plugins live. You may need administrator rights to write intoC:\Program Files. - Standard installer (e.g.
-
Restart Notepad++
See Building from Source section below.
After installation, the plugin starts working automatically. Access plugin commands via Plugins → Emoji Description:
- Show Character Info - Toggle the whole display on/off (enabled by default)
- Copy character details... - Open the details dialog for the character at the caret (see Getting the data out above)
- Show: code point / (html) / (hex) / (dec) / (oct) / description - Toggle each field individually. Every item carries a sample value in its label, so the menu doubles as the legend for the tags used in the status bar.
- About - Plugin information
Simply move the cursor through text, and character information will be displayed in the status bar at the bottom of the Notepad++ window.
- Visual Studio 2017 or later with "Desktop development with C++" workload
- Windows SDK
- (Optional) CMake 3.15 or later for CMake-based builds
- Open
vs.proj\EmojiDescription.vcxprojin Visual Studio - Select
Releaseconfiguration andx64platform (orWin32for 32-bit) - Build → Build Solution (or press
Ctrl+Shift+B) - Compiled DLL will be in
bin64\(orbin\for x86)
- Open "Developer Command Prompt for VS 2022" (or your VS version)
- Navigate to project folder:
cd <path_to_project>- Build:
msbuild vs.proj\EmojiDescription.vcxproj /p:Configuration=Release /p:Platform=x64- Create build directory:
mkdir build
cd build- Open "Developer Command Prompt for VS 2022"
- Generate project:
cmake ..- Build:
cmake --build . --config ReleaseRepository: https://github.com/Ruberoid/npp_emoji_description
EmojiDescription/
├── src/
│ ├── PluginDefinition.h - Header with declarations
│ ├── PluginDefinition.cpp - Main plugin logic
│ ├── CharDetailsDialog.h - Details dialog: resource IDs and entry point
│ ├── CharDetailsDialog.cpp - Details dialog implementation
│ ├── UnicodeNames.cpp - Embedded Unicode character-name lookup
│ ├── EmojiDescription.cpp - DLL entry point
│ ├── EmojiDescription.rc - Resources (version, name table, dialog)
│ ├── PluginInterface.h - Notepad++ plugin interface
│ ├── Scintilla.h - Scintilla API
│ └── ...
├── vs.proj/
│ └── EmojiDescription.vcxproj - Visual Studio project
├── .github/workflows/
│ ├── CI_build.yml - CI for builds
│ └── release.yml - Automated releases
├── CMakeLists.txt - CMake configuration
└── README.md - This file
decodeUtf8Char()- Decodes the UTF-8 character at the caret into a code point (src/PluginDefinition.cpp:200)encodeUtf8()- Encodes a code point back into UTF-8 bytes, shared by the (hex) / (dec) / (oct) fields (src/PluginDefinition.cpp:258)formatCharacterCodes()- Composes the enabled fields into the status-bar line (src/PluginDefinition.cpp:339)readCaretCodePoint()- Reads the character at the caret; shared by the status bar and the dialog so the two cannot disagree (src/PluginDefinition.cpp:443)updateCharacterInfo()- Updates character info under cursor (src/PluginDefinition.cpp:475)pluginBeNotified()- Handles notifications from Notepad++ and Scintilla (src/PluginDefinition.cpp:506)buildCharacterDetails()- Composes the full block shown in the details dialog (src/PluginDefinition.cpp:613)showCharDetailsDialog()- Runs the modal details dialog (src/CharDetailsDialog.cpp:174)
The project uses GitHub Actions for automated builds and releases:
- CI Build: Runs on every commit to verify compilation for all platforms
- Release: Automatically creates releases with binaries when a version tag is pushed
See PUBLISHING.md for details on creating releases.
This plugin is distributed under the GPL v2 license, same as Notepad++.
See LICENSE file for details.
Contributions are welcome! Please feel free to submit a Pull Request.
If you encounter any issues or have suggestions, please open an issue on GitHub.
Ruberoid
- GitHub: @Ruberoid
- Repository: https://github.com/Ruberoid/npp_emoji_description
See CHANGELOG.md for version history and changes.