#3782 More flexible status bar

open
nobody
5
2014-02-11
2013-03-08
Victor Engmark
No

jEdit 5.0pre1 with OpenJDK 1.6.0_27.

I was just trying to specify a status bar string like "<Buffer edit mode> mode, <Buffer encoding> encoding", but it turns out space characters are stripped from these strings when saving, and if you specify a label "mode" (i.e., equal to the code word used in the properties file) it will be treated as "<Buffer edit mode>" rather than a literal label. An ugly workaround for both of these is to use underscore or some other "special" character as a separator. Escaping spaces with backslash doesn't help.

Some ways (IMO) usability could be improved:

1. Separator option. That is, a string which is inserted between each non-empty option. For example, if
view.status.separator=,\
(with a space character after the backslash) and
view.status=mode encoding errors
the status bar contents would show "text, UTF-8" if there are no errors and "text, UTF-8, 1 error(s)" if there are any.
2. Pre- and/or post-strings per widget rather than separate labels. For example, if the <errors> widget only printed a number:
view.status=mode encoding errors
view.status.mode.pre=
view.status.mode.post=,\
view.status.encoding.pre=
view.status.encoding.post=,\
view.status.errors.pre=Errors:\
view.status.errors.post=
would result in something like "text, UTF-8, Errors: 1"
3. Longer/custom strings for binary widgets. For example, instead of simply a gray or black "o"/"O" for buffer overwrite mode (which is incomprehensible to a newbie), it would be much easier to understand either
a) gray or black "overwrite",
b) "overwrite" (alternatively "replace" which is used in many other editors) / "insert" (alternatively "INSert" to hint about the keyboard shortcut if that is really set to INS in the current configuration), and/or
c) Empty string for the default mode (I guess it's not possible to set overwrite mode as the default) and a non-empty string for insert mode.

Would it be possible to use for a macro or BeanShell snippet to generate the status string?

Discussion