At the moment, when creating a project, the user is greeted with the
dialog containing:
1. Name
2. Filename
3. Base path
The user is expected to type the name of the project into (1), and then,
Geany tries to guess the base path and file name. The guess simply takes
the project directory specified in settings and appends the name. When the
project is located anywhere else than in the projects directory,
the guessed values are wrong and have to be entered manually which is
quite annoying. In addition, the dialog doesn't make it clear that the
user should start with (1), when he starts with (2) or (3), he has to
fill in all 3 values manually.
This patch adds another method of project creation which is more
suitable for creating projects from existing directory with source
files. There's a new "Project->New from Folder..." option that in
the first step asks user to provide the base path and based on this
path fills in the entries in the New Project dialog.
With this approach, Project->New from Folder...:
a. First pops up a open directory dialog to specify base path
b. After that, opens the (currently used) New Project dialog which
is pre-filled in the following way:
1. Name: The last directory in base_path
2. Filename: depending on "store project file inside the project base
directory" settings either in base_path/(1).geany or projects_dir/(1).geany
3. Base path: path specified in (a)
This way, in most cases, the user will only have to select the base
directory in the first step and use the pre-filled values without
any modification no matter whether the project is stored in the projects
directory or not.
After this patch, there will be 2 different ways to create projects:
1. Project->New - more suitable for creating empty projects from scratch
inside the "projects" directory
2. Project->New from Folder - more suitable for creating projects from
existing sources
Benefits are blazing fast builds and more user friendly configuration.
This is promised by meson and I would agree in the case of Geany.
Autotools is supported and still the default.
Meson builds might have rough edges but should generally work OK.
Time will tell if it superseeds autotools builds completely.
The GLSL portion of c.c doesn't seem to do anything - it's just a synonym
for a C parser which can be used directly instead. This way we can
switch to the new cxx parser for GLSL too and reduce one more language
to care about in c.c.
For reference, the GLSL "parser" was introduced in commit
6ce421f1411060b8576bdac982cca11229b8ef96
Since we need to keep original identifiers for parsers and need some
parser instead of the removed GLSL parser, we can replace it with
the CUDA parser that is part of the new cxx parser and we can use
this parser for parsing CUDA files instead of C++ (the CUDA parser
is basically just C++ parsers with different keywords).
As per #267 we agreed that this pref makes little sense. Especially
as we're considering to move the project session files to a completely
separate file (so neither geany.conf nor $project.geany).
Currently, if not checked, the project session files would be stored
in the (new) session.conf file, overwriting the non-project session.
This is what #267 is about.
* Add search icon to the entry
* Mention the possibility to use more filters separated
by space in tooltip
* Focus the tree when pressing enter in the search entry
* Update Nim filetype config
Keywords taken from official Manual.
Identifiers list expanded with:
1. Some basic types from the System module, which is always implicitly imported.
2. Additional keywords (`lent, spawn, parallel`) from Nim experimental features.
Styling and build-menu settings taken from @HJarausch config in #2669
* Fixup: Nim filetype: add `sink`
* Add multiline comments to Nim filetype
...which won't work until the Nim lexer from lexilla is added.
Notable changes:
Scintilla:
- Add SC_ELEMENT_FOLD_LINE to set the colour of fold lines. Add SC_ELEMENT_HIDDEN_LINE to show where lines are hidden.
- On GTK, fix the line spacing so that underscores and accents are visible for some fonts such as DejaVu Sans Mono 10.
Lexilla
- Implement conditional group rules in CSS. Issue #25, Pull request #28.
- Check PHP numeric literals, showing invalid values with default style instead of numeric. Issue #20.
The CSS change causes compatiblity trouble. We exposed the changed
style in filetypes.css. Users must update local copies.
Users expect accessible name of the window to match the window title,
so remove the custom explicit name of "Geany" which was added at the
very beginnings of Geany, presumably without real a11y reasons.
Without this, GTK forwards the window title to the a11y name for us,
leading to the expected result and matching most other apps.
Fixes#2421.
Some Gtk themes define a dark foreground color for selected text, so when we
set the background to dark red, it becomes difficult to read. We must therefore
set a foreground color that will remain legible against our background.
Fixes#2332