Date: prev next · Thread: first prev next last
2018 Archives by date, by thread · List index


In order to maintain optimally readable code, and waste minimal amount of development time on manual routine text (re)formatting, LibreOffice requires clear text formatting (also, ‘code style’) guidelines. Ideally, these guidelines would not only be clear to contributors (assuming they are aware of them), but also be checkable and applicable automatically, i.e. be rules.

EditorConfig (http://editorconfig.org/) is standard configuration file format, that serves to specify basic text formatting rules. It was designed to partially fulfill the previously introduced requirement. It allows LibreOffice broad control over text formatting rules, and helps text editing software to then apply these rules before anything is committed. This all happens in a way transparent to and easy on contributors. IDE/editor support for EditorConfig is very complete at present, and works independent of platform conventions. EditorConfig fits in the larger picture as complement to language-specific text formatting rules, e.g. clang-format rules.

Currently, LibreOffice developers appear to use Vim modelines for this purpose, but quite choatically. For example, within a single source code file multiple modeline-style comments can be found, e.g. one Emacs-style (https://github.com/LibreOffice/core/blob/19a906f09688f06ee90cac2a50126aeba749a331/sw/source/filter/ascii/wrtasc.cxx#L1) and one vim-style (https://github.com/LibreOffice/core/blob/19a906f09688f06ee90cac2a50126aeba749a331/sw/source/filter/ascii/wrtasc.cxx#L200).

Modeline-style methods for text formatting rules differ from EditorConfig in a number of ways. The differences are mainly down to weaknesses of modelines, as already convincingly argued in e.g. https://github.com/vim/vim/issues/2286#issue-271201325. I will add a few points. Classical Unix editor-specific configuration is not contributor-friendly. Note also that Vim modelines can increase security risk to developers (https://www.reddit.com/r/vim/comments/60jbww/disable_modeline_for_security_reasons/). Finally, modelines do nothing to control formatting of non-source code files such as CSV or plain text files.

I propose to:
- Decide on detailed text formatting guidelines.
- Implement the relevant part of these rules in one or more EditorConfig file(s). - Phase out any other mechanisms for text formatting that is now covered by these EditorConfig files.

Please let me know what you think of this.

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.