Skip to content

Ruberoid/npp_emoji_description

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

69 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Emoji Description for Notepad++

Version 0.1.0

A Notepad++ plugin that automatically displays detailed character encoding information in the status bar for the character under the cursor.

CI Build Release GitHub release License: GPL v2

GitHub: https://github.com/Ruberoid/npp_emoji_description

Features

When you move the cursor through text, the plugin automatically displays for the current character:

  • Unicode code point (U+XXXX format)
  • Decimal value
  • Hexadecimal value
  • HTML entity (&#XXXX; format)
  • UTF-8 byte sequence (hex bytes)

Supported Characters

  • 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

Output Examples

For character A:

U+0041 | Dec: 65 | Hex: 0x41 | HTML: A | UTF-8: 0x41

For emoji πŸ˜€:

U+1F600 | Dec: 128512 | Hex: 0x1F600 | HTML: 😀 | UTF-8: 0xF0 0x9F 0x98 0x80

For Cyrillic character Π―:

U+042F | Dec: 1071 | Hex: 0x42F | HTML: Я | UTF-8: 0xD0 0xAF

Installation

Option 1: From Release (Recommended)

  1. Download the latest release from Releases page
  2. Choose the appropriate ZIP file for your Notepad++ version:
    • EmojiDescription_x64_*.zip for 64-bit Notepad++
    • EmojiDescription_x86_*.zip for 32-bit Notepad++
    • EmojiDescription_arm64_*.zip for ARM64 Notepad++
  3. Extract the DLL file
  4. Copy to %APPDATA%\Notepad++\plugins\EmojiDescription\
  5. Restart Notepad++

Option 2: Build from Source

See Building from Source section below.

Usage

After installation, the plugin starts working automatically. Access plugin commands via Plugins β†’ Emoji Description:

  • Show Character Info - Toggle display on/off (enabled by default)
  • 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.

Building from Source

Requirements

  • Visual Studio 2017 or later with "Desktop development with C++" workload
  • Windows SDK
  • (Optional) CMake 3.15 or later for CMake-based builds

Build Option 1: Visual Studio (Recommended)

  1. Open vs.proj\EmojiDescription.vcxproj in Visual Studio
  2. Select Release configuration and x64 platform (or Win32 for 32-bit)
  3. Build β†’ Build Solution (or press Ctrl+Shift+B)
  4. Compiled DLL will be in bin64\ (or bin\ for x86)

Build Option 2: MSBuild from Developer Command Prompt

  1. Open "Developer Command Prompt for VS 2022" (or your VS version)
  2. Navigate to project folder:
cd <path_to_project>
  1. Build:
msbuild vs.proj\EmojiDescription.vcxproj /p:Configuration=Release /p:Platform=x64

Build Option 3: CMake

  1. Create build directory:
mkdir build
cd build
  1. Open "Developer Command Prompt for VS 2022"
  2. Generate project:
cmake ..
  1. Build:
cmake --build . --config Release

Development

Repository: https://github.com/Ruberoid/npp_emoji_description

Project Structure

EmojiDescription/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ PluginDefinition.h       - Header with declarations
β”‚   β”œβ”€β”€ PluginDefinition.cpp     - Main plugin logic
β”‚   β”œβ”€β”€ EmojiDescription.cpp     - DLL entry point
β”‚   β”œβ”€β”€ EmojiDescription.rc      - Resources (version, description)
β”‚   β”œβ”€β”€ 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

Key Functions

  • updateCharacterInfo() - Updates character info under cursor (src/PluginDefinition.cpp:194)
  • decodeUtf8Char() - Decodes UTF-8 character to Unicode code point (src/PluginDefinition.cpp:91)
  • formatCharacterCodes() - Formats all code representations (src/PluginDefinition.cpp:136)
  • pluginBeNotified() - Handles notifications from Notepad++ and Scintilla (src/PluginDefinition.cpp:243)

CI/CD

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.

License

This plugin is distributed under the GPL v2 license, same as Notepad++.

See LICENSE file for details.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Support

If you encounter any issues or have suggestions, please open an issue on GitHub.

Author

Ruberoid

Changelog

See CHANGELOG.md for version history and changes.

About

No description, website, or topics provided.

Resources

License

GPL-2.0, GPL-2.0 licenses found

Licenses found

GPL-2.0
LICENSE
GPL-2.0
license.txt

Stars

Watchers

Forks

Packages

 
 
 

Contributors