Add API to truncate a vString to a certain length. This doesn't support
growing the string, only shrinking it.
X-Universal-CTags-Commit-ID: 4e3d9edf2e7a8a476ff97bc678e71c3919b960f9
The previous fix, coming from [CTags bug #1988026], was incorrect if
the parent was not a root-level element, as it checked the level name
(unqualified) against the parent name (qualified).
However, there is no need to check the level name, all what counts is
the indentation level itself: if it's smaller than an existing level,
it ends it.
This fixes [CTags bug #356].
[CTags bug #1988026]: https://sourceforge.net/p/ctags/bugs/227/
[CTags bug #356]: https://sourceforge.net/p/ctags/bugs/356/
X-Universal-CTags-Commit-ID: ab91e6e1ae84b80870a1e8712fc7f3133e4b5542
SciTE added the SCI_GETALLLINESVISIBLE check in revision
8dc4127cc8d76ecdf988928ac34e79955c09bda4:
"Minimize cost of processing fold level changes to ensure visibility for
the common case where the whole document is already visible."
When nothing is folded, this improves the performance considerably which
is visible e.g. when pasting larger amounts of text.
Closes#507.
When profiling Geany I/O activity, there are lots of I/O operations happening
when just typing in the editor caused by the updates of the symbol tree
and loading the icon files.
In addition, in the case of tag_other the leaves of the tree use
classviewer-var instead of the parent icon (e.g. with enums). In this case
the icon is loaded from the disk every time it's requested which takes
about 70% of the tree creation time when the tree consists only of such
nodes.
To fix these problems load the icons once and return the loaded icons when
requested instead of reloading them from the disk all the time.
At the moment the message window is set to resize when the height of the
main window changes. This is a bit annoying when the message window size
is set to fit all the tabs exactly and when shrinking the window, the
tabs don't fit the shrinked message window.
Set the flag not to resize the notebook_info notebook (similar thing is
already done with the sidebar in the horizontal direction so no change
needed there).
Works fine also when the message window is set to be on the right side.
error was missing in secondary keywords (also sorted alphabetically now)
Add true false iota nil into primary keywords which, while not strictly
speaking keywords (they are predeclared identifiers), are nice to have
highlighted.
Unfortunately varType is Geany-only so this patch cannot be ported to ctags.
The removal of the extra { read is not the most elegant thing but making
skipType() aware of the argList collection complicates things too much.
Use filetype.common's wordchars instead of GEANY_WORDCHARS as default
for filetypes not having their own. This allows to change the
wordchars for all filetypes at once.
Part of issue #492.
On OS X /etc/bashrc does some Apple-terminal-specific thing:
# Tell the terminal about the working directory at each prompt.
if [ "$TERM_PROGRAM" == "Apple_Terminal" ] && [ -z "$INSIDE_EMACS" ]; then
update_terminal_cwd() {
# Identify the directory using a "file:" scheme URL,
# including the host name to disambiguate local vs.
# remote connections. Percent-escape spaces.
local SEARCH=' '
local REPLACE='%20'
local PWD_URL="file://$HOSTNAME${PWD//$SEARCH/$REPLACE}"
printf '\e]7;%s\a' "$PWD_URL"
}
PROMPT_COMMAND="update_terminal_cwd; $PROMPT_COMMAND"
fi
This however doesn't work in VTE when Geany is started from the Terminal
application so we get some strange prefix for the prompt. Unset the
TERM_PROGRAM variable so it isn't set to Apple_Terminal when running
inside VTE.
The initial prompt may get corrupted so it looks something like
any/src $ het-vm ~/projects/gea
instead of
techet@techet-vm ~/projects/geany/src $
This is just the initial display problem - when enter is pressed, the
second line already shows correct prompt.
It appears that VTE isn't fully initialized when starting the shell process
and when the shell start is delayed a bit (performed on idle), the prompt
looks correct.