* Check plugins composer.json using CI
* Add "require-dev" and "config.allow-plugins" to plugins
* fix composer.json format - rm invalid email
* fix composer.json format - fix ext require
* fix composer.json format - fix plugin name
* tmp
* Revert "tmp"
* fix ext in ext install
* disable plugin in plugin install until Roundcube is fully autoloadable
* fix composer.json format - fix non-canonical license name
* Revert "Add "require-dev" and "config.allow-plugins" to plugins"
* no composer install for plugins needed
* Revert "fix ext in ext install"
* add standard "Test" suffix to phpunit files
* rm unneeded "suffix" in phpunit config
* simplify phpunit config
* fix default "xhtml" doctype in unit testing
* fix test_format_date test to not rely on other tests
* even more phpunit config simplify
* stricter/unify phpunit params for E2E tests
* run E2E tests on maximal php version too with lowest deps
* "repositories" in bundled plugins are useless as for root package only
* add/unify missing plugin test
* Move action handling code to rcmail class
* Add rcmail_action class
* Add action aliases
* Get rid of $OUTPUT global
* Move some methods from rcmail to rcmail_action
* PHP8 compat. fixes
* Add framework for testing actions
* Fix obvious code mistakes
- Emoticons: All emoticons-related functionality is handled by the plugin now
- Emoticons: Added option to switch on/off emoticons in compose editor (#1485732)
- Emoticons: Added option to switch on/off emoticons in plain text messages
- Plugin API: Added disabled_plugins an disabled_buttons options in html_editor hook
- Plugin API: Added html2text hook
Now instead of <pre> we use <div class="pre"> styled with monospace
font. We replace whitespace characters with non-breaking spaces where
needed. I.e. plain text is always unwrappable, until it uses format=flowed,
in such a case only flowed paragraphs are wrappable.
Also conversion of text to HTML in compose editor was modified in the same way.