Skip to content
Switch branches/tags
Go to file


Build status

Notepad++ plugin for Lua scripting capabilities. This provides control over all of Scintilla's features and options with a light-weight, fully-functional programming language.

Major features include:

  • Assign Lua functions to shortcut keys
  • Register callback functions for events
  • Full Lua 5.3 functionality
  • Interactive console with auto-completion
  • Requires no special permissions

Getting Started

Install the plugin using the Notepad++ Plugin Admin, or you can manually download it from the Release page and extract the zip into your plugins folder.

Lua Console

LuaScript provides an interactive console for running Lua commands. This can be shown by Plugins > LuaScript > Show Console.

Startup Script

LuaScript looks for the \plugins\config\startup.lua file and automatically runs it on Notepad++ startup. You can easily edit this file via Plugins > LuaScript > Edit Startup Script. You can include any commands you want to immediately execute on program startup, as well as register any additional shortcuts or callbacks.

Registering New Shortcuts

New functions can be added as shortcuts by using AddShortcut. The new menu items are listed under the Plugins > LuaScript menu. For example this script adds 2 new menu items.

Registering Callback Functions

Scripts can also register functions to be called when certain events occur, such as a file being opened, text being modified, etc. Each callback provides a different set of parameters. See the documentation for callbacks to see the entire list of possible events and parameters provided.


The full API documentation can be found here. Also be sure to check out the examples directory.


The code has been developed using Visual Studio 2017. To compile the code:

  1. Open the LuaScript.sln file
  2. Press F7 and that's it!

For convenience, Visual Studio automatically copies the DLL into the Notepad++ plugin directory.


This code is released under the GNU General Public License version 2.


Special thanks to the PythonScript plugin and SciTE.