Bug 577289 - preference to open large files with specific editor

Add new preferences (General -> Editors -> Large File Associations) to
allow fine-grained control over which editor is used when opening a
large document.

Large file limit preference stored per file type, the value of the
preference lists pairs of file size limit and associated editor ID. The
value 'largeFileLimits_prompt' can be used to indicate the user should
be prompted with a dialog to select an editor.

In addition, the preferences 'largeFileLimits_default_value' and
'largeFileLimits_default_enabled' can be set to specify default behavior
for all document types, which don't have a specific preference set.

The new preferences can be set via plug-in customization e.g. as
follows:

# all types with a preference, needed by the preference page UI
org.eclipse.ui.workbench/largeFileLimits_types=java,xml,txt
org.eclipse.ui.workbench/largeFileLimits_disabled=cpp

# if file size is over 8 MB, show prompt for all types that don't have a
preference
org.eclipse.ui.workbench/largeFileLimits_default_value=8388608
org.eclipse.ui.workbench/largeFileLimits_default_enabled=true

# Example limits per file type
org.eclipse.ui.workbench/largeFileLimits.java=4096,org.eclipse.ui.DefaultTextEditor,8192,largeFileLimits_prompt
org.eclipse.ui.workbench/largeFileLimits.xml=1048576,org.eclipse.ui.DefaultTextEditor,77777,Emacs
org.eclipse.ui.workbench/largeFileLimits.txt=2048,largeFileLimits_prompt

Note: if the old preference 'LARGE_DOC_SIZE_FOR_EDITORS' is set (single
global limit for all file types/editors), it effectively disables new
preferences for compatibility reasons.

Change-Id: Ifa2b78eeb45ec977dbcbdddee0dd3c81995480ae
Signed-off-by: Simeon Andreev <simeon.danailov.andreev@gmail.com>
Signed-off-by: Andrey Loskutov <loskutov@gmx.de>
Reviewed-on: https://git.eclipse.org/r/c/platform/eclipse.platform.ui/+/188915
Tested-by: Platform Bot <platform-bot@eclipse.org>
11 files changed
tree: 11e415dae4bfba5252180ed433cb875615226b56
  1. .mvn/
  2. bundles/
  3. examples/
  4. features/
  5. releng/
  6. tests/
  7. .gitignore
  8. CONTRIBUTING
  9. CONTRIBUTING.md
  10. Jenkinsfile
  11. LICENSE
  12. NOTICE
  13. pom.xml
  14. README.md
README.md

Contributing to Eclipse Platform UI project

Thanks for your interest in this project.

Project description:

Platform UI provides the basic building blocks for user interfaces built with Eclipse.

Some of these form the Eclipse Rich Client Platform (RCP) and can be used for arbitrary rich client applications, while others are specific to the Eclipse IDE. The Platform UI codebase is built on top of the Eclipse Standard Widget Toolkit (SWT), which is developed as an independent project.

Website: http://www.eclipse.org/platform/ui/

For more information, refer to the Platform UI wiki page.

How to contribute:

Contributions to Platform UI are most welcome. There are many ways to contribute, from entering high quality bug reports, to contributing code or documentation changes. For a complete guide, see the Platform UI - How to contribute wiki page page on the team wiki.

Test dependencies

Several test plug-ins have a dependency to the Mockito and Hamcrest libraries. Please install them from the Orbit Download page]3:

Currently the following plug-ins are required:

  • net.bytebuddy.byte-buddy
  • net.bytebuddy.byte-buddy-agent
  • org.hamcrest.core
  • org.mockito
  • org.objenesis

How to build on the command line

You need Maven 3.3.1 installed. After this you can run the build via the following command:

mvn clean verify -Pbuild-individual-bundles

Developer resources:

Information regarding source code management, builds, coding standards, and more.

Contributor License Agreement:

Before your contribution can be accepted by the project, you need to create and electronically sign the Eclipse Foundation Contributor License Agreement (CLA).

Search for bugs:

This project uses Bugzilla to track ongoing development and issues.

Create a new bug:

Be sure to search for existing bugs before you create another one. Remember that contributions are always welcome!

Contact:

Contact the project developers via the project's “dev” list.

License

Eclipse Public License (EPL) 2.0