OmegaT project uses following coding style rules and coding policy.
- Each java file has a GPL3 copyright header. OmegaT has a unit test to check header.
- Source code has a maximum 120 characters in each line.
- The Maximum line length of comments in sources is 80 characters
- Indentation is 4 spaces. Don't use TAB character.
- We don't use asterisk import. You should expand all individual imports.
- You are recommended to put javadoc comments for all your public methods.
- We don't set method arguments "final", but you are recommended to treat it as final.
- Bundle properties should be ASCII, 7bit clean. All translations should be escaped.
- It will change to be UTF-8 after OmegaT version 6.1 beta release.
- Stable APIs should be under "org.omegat.core" package.
- GUI parts can be;
- written by hand, or
- Use NetBeans GUI builder
- We don't accept other GUI builder materials;
- such as JetBrains IntelliJ GUI builder, JForm Designer, Eclipse Window builder.
- If you want, you are recommended to implement it as a plugin.
- We move XML parser to be StAX based instead of JAXB because of performance.
- We use Jackson XML serialization library.
language and characters
- OmegaT project uses UTF-8 characters for comments in java source file in general.
- You should use English for comment language.
- You should use ASCII characters and 7bit clean for variable names, method names et. al.
- You are allowed to use String literals in UTF-8 encoding.
- You should use Bundle for localization strings.
- You can not use Right-to-Left direction characters in comments.
- You can not use invisible characters such as non-breakable-space.
- When you need invisible characters in literals, please use unicode escape.
OmegaT project configures a build script with several linting tools. You can check your code with;
You can check your code with Checkstyle linting tool.
A project configuration is stored in
We treat checkstyle lint error as warning, but you are recommended to
improve your code before sending your patch to the core team.
Spotless code formatter
Spotless is a general purpose code formatting tool that makes code spotless. It will help you to format your changed code just a command
OmegaT uses Spotless plugin for gradle and configured with eclipse formatting configuration This XML file is project-standard indent configuration for Eclipse IDE, but also uses as spotless formatting rule.
There is other sample config file for IDE such as JetBrains IntelliJ Project configuration.