# NAME Win32::Mechanize::NotepadPlusPlus - Automate the Windows application Notepad++ # SYNOPSIS use Win32::Mechanize::NotepadPlusPlus ':main'; my $npp = notepad(); # main application # DESCRIPTION Automate the Windows application [Notepad++](https://notepad-plus-plus.org/). This is inspired by the Notepad++ plugin PythonScript, but I decided to automate the application from the outside, rather than from inside a Notepad++ plugin. But this module uses similar naming conventions and interface to the PythonScript plugin. ## REQUIREMENTS You need to have Notepad++ on your system. This module will work if Notepad++ is in a standard install location, like `%ProgramFiles%\Notepad++\` or `%ProgramFiles(x86)%\Notepad++\`, or if it is in your path: when it can find the executable, it will either use the currently-running instance, or will launch a new instance if none are currently running. If it cannot find your executable, the will only work if Notepad++ is already running. The module was developed with Notepad++ v7.7 or newer in mind, though some features should still work on older versions of Notepad++. As Notepad++ adds new features, the minimum version for that method will be indicated in the help. # LIMITATIONS This is the first public release of the module. In general, it works. As with all first releases, there is room for improvement; I welcome feedback. The first known limitation is that none of the hooks for Scintilla or Notepad++ callbacks have been enabled. That may come sometime in the future. All the testing and development was done with a US-English installation of Notepad++, and all the file encodings have been ANSI or UTF-8. I [know](https://github.com/pryrt/Win32-Mechanize-NotepadPlusPlus/issues/2) that I need to include better tests for encoding, and any help you can provide with that is appreciated. Notepad++ is a Windows application, so that's the intended platform for this module. However, I know Notepad++ can be made to run in Wine and similar environments in Linux, so it may be possible to make this module drive Notepad++ in such an environment. Feedback on this process is welcome. # INSTALLATION To install this module, use your favorite CPAN client. For a manual install, type the following: perl Makefile.PL make make test make install (On Windows machines, you may need to use "dmake" or "gmake" instead of "make", depending on your setup.) ## It didn't install In general, if the test suite fails and it doesn't install, you will probably need to file a [bug report](https://github.com/pryrt/Win32-Mechanize-NotepadPlusPlus/issues). Known possible causes include - Bit mismatch Notepad++ and Perl must have the same bits -- 64bit or 32bit. Make sure they do. If they don't, it will fail in test file `t\02_bits.t`. - `-1 NOT >= 0` error See [issue #28](https://github.com/pryrt/Win32-Mechanize-NotepadPlusPlus/issues/28): if you get the message `SendMessage_getRawString(): -1 NOT >= 0 at C:\usr\local\share\GitHubSvn\Win32-Mechanize-NotepadPlusPlus\lib/Win32/Mechanize/NotepadPlusPlus/Notepad.pm line 755.` or similar in multiple of the test files, it might be because you have one or more really large files currently open in Notepad++, or you have too many files open. Either of these can cause a race condition where the test suite expects Notepad++ to respond with all files loaded, but Notepad++ isn't quite ready yet. In that case, **File > Save Session**, then **File > Close All**. Exit and restart Notepad++. The test suite will probably pass now (if not, please comment on issue#28). Once passing and installed, you can **File > Load Session** to restore your previously active file session. # AUTHOR Peter C. Jones `` Please report any bugs or feature requests thru the repository's interface at [https://github.com/pryrt/Win32-Mechanize-NotepadPlusPlus/issues](https://github.com/pryrt/Win32-Mechanize-NotepadPlusPlus/issues), or by emailing `` or thru the web interface at [http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Win32-Mechanize-NotepadPlusPlus](http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Win32-Mechanize-NotepadPlusPlus).
# COPYRIGHT Copyright (C) 2019,2020,2021 Peter C. Jones # LICENSE This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License. See [http://dev.perl.org/licenses/](http://dev.perl.org/licenses/) for more information.