An open API service indexing awesome lists of open source software.

https://github.com/pryrt/win32-mechanize-notepadplusplus

Automate the Windows application Notepad++ thru Perl modules and Win32::GuiTest
https://github.com/pryrt/win32-mechanize-notepadplusplus

Last synced: 9 months ago
JSON representation

Automate the Windows application Notepad++ thru Perl modules and Win32::GuiTest

Awesome Lists containing this project

README

          

# 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.