Scintilla has some cool features that are currently not used in Geany. These are the ones that I'd like to see:
* SCI_SETSCROLLWIDTHTRACKING - Currently, if you load a document with a very long line, you cannot scroll the window far enough to the right to see all of it---you have to put the cursor on the line, and jump to the end. Scintilla doesn't have the ideal behavior (where the scrollbar dynamically adjusts to the width of the currently visible portion of text), but this is a reasonable compromise.
* SCI_SETSELALPHA, SCI_SETCARETLINEBACKALPHA - The alpha-coloring options for the selection and caret lines are too good to ignore. I never liked how the background colors of my highlighting styles would disappear in either of these contexts; the effect was jarring, and partly defeated the purpose of highlighting (large selections were effectively turned into plain text).
* SCI_SETCARETSTYLE: I prefer a block cursor instead of a line. (This would be a good candidate for a non-hidden pref, IMO)
* SCI_SETWRAPVISUALFLAGS, SCI_SETWRAPVISUALFLAGSLOCATION - It's useful to be able to tweak these. I like to have indicators both at the end of the current sub-line, and at the beginning of the next one.
Attached is a patch that partly implements these changes. There are some issues that need to be addressed, however:
* I made use of the foreground color of current_line to store the alpha value; however, because get_keyfile_hex() cannot interpret numbers that don't represent a color, the value has to be pulled using a separate get_keyfile_int() call.
* The argument to SCI_SETSELALPHA is hard-coded because, quite simply, I don't know where to store the value. Should there be a GCS_SELECTION_ALPHA? This way of storing non-color styling arguments is *such* a hack....