This PR removes deprecated symbols: `ui_frame_new_with_alignment()` and `ui_widget_set_tooltip_text()` from `ui_utils.c`.
Affected plugins are geanypy and webhelper. Both are currently broken because of GTK2 or other dependencies.
See #3019.
You can view, comment on, or merge this pull request online at:
https://github.com/geany/geany/pull/3028
-- Commit Summary --
* Remove deprecated symbols from ui_utils.c
-- File Changes --
M src/ui_utils.c (45)
M src/ui_utils.h (8)
-- Patch Links --
https://github.com/geany/geany/pull/3028.patchhttps://github.com/geany/geany/pull/3028.diff
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/3028
There are several issues and PRs relating to the topic and its hard to follow them all and to ensure they gel. Having one persons use-case cut off another persons use case is rude and should not be allowed without consideration. So I have made this summary issue to thrash out the best solution giving everyone their use-case. Or if that not possible then least objectionable solution.
PLEASE DO NOT JUMP IN WITH YOUR SOLUTIONS UNTIL WE HAVE ALL THE USE_CASES RECORDED.
I will delete posts by anyone who jumps in with solutions before everyone is allowed to have their use-cases recorded, as your mother told you, don't talk over other people it makes the conversation hard to follow [end threat].
Lets start with the current implementation, why have "projects" at all, what does the current implementation provide and what are the benefits (which should not be lost when new use-cases are added) and limitations (which can happily be lost :-):
0. Operate perfectly well without any idea of a project, its all just files
- has the benefits
- simplicity
- `session.conf` is now separate from `geany.conf` so it can be added to `.gitignore`[^1]
1. Its origin is lost in the mists of time, but the basic use-case seems to be grouping what the user is doing for different things the user is working on concurrently so that they can keep them separate,
- provided by -c using a different config directory per project,
- which has the benefits:
- allows multiple projects open at once (because it allows running multiple Geanys separately),
- allows any setting including things in filetype files and geany.css to be made project specific,
- and the limitations:
- cannot switch projects without restarting Geany
- cannot be saved to git(hub/lab) without exposing the session which is likely to change every edit
- has no obvious encapsulation of what defines the project
- provided by current project system
- which has the benefits
- allows switching between projects without restart
- has the concept of the project being encapsulated in a directory
- all settings in one file which can be located in the project directory or outside it where it can avoid being git(hub/lab)ed
- and the limitations
- only one project open at once
- very few settings can be project specific
- cannot be saved to git(hub/lab) without issues[^1]
- the two methods are orthogonal and do not necessarily play well together
2. Additional "project" related features in plugins (that I know about, please post others or correction of my understanding)
- project_organiser, extends Geany projects to
- allow adding additional trees to the encapsulation
- automated tag generation for files in the encapsulated project making autocomplete, goto declaration/definition etc work for files not open
- header/source swap within the encapsulated project
- geanyprj, separate from Geany projects, has its own config files
- similar to above AFAICT
- workbench
- provides file lists and project tree manipulation for several Geany projects at once
- unsure what else
That is really quite a lot of use-cases covered!! :smile:
Often we tend to concentrate on the negatives/missing parts and don't see how much Geany actually has. That risks cutting off existing capability with hastily made changes.
AFAICT the additional use-cases espoused (not always clearly) in various issues, PRs, ML, and discussions on the now defunct IRC are listed below, since many have been suggested several times I have not attributed any.
1. being able to move a whole project (outside Geany) in its current state without editing settings on arrival, examples:
- move a project between different locations on the same machine
- being able to move between different but similar machines (eg desktop and laptop, they are likely file system layout, and GUI size and layout compatible)
- developing code on a large Linux machine then moving it to a Raspberry Pi for testing, (eg similar file system layout but different GUI size and layout requirements)
- developing code on a Linux machine and moving it to a Windows/OSX machine for testing (or any other permutation) (eg likely different file system layout)
2. being able to save project settings in git(hub/lab) without[^1] and in addition allow being able to make project settings read-only to avoid accidental modification of settings the project (in the sense of the Geany project) wants to have specific, eg indentation style or long line position.
3. allowing many more settings to be project specific:
- by adding selected config capabilities to projects, eg more settings and more filetype settings other than build commands
- or adding optional project capabilities to configs, eg the encapsulation concept
[^1]: problems with saving current config session or project files in git(hub/lab) are:
- noise because session file and the project file are written often to keep the session current
- information leakage, for example a session file containing something like "/home/me/my_secret_evil_project/taking_over_the_world.txt"
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/issues/3022
The problem with current project files, which contain absolute paths to
open documents, is, that when moved to another directory, they become
invalid.
There have been various pull requests in the past attempting to start
using relative paths, the problem was, that given Geany's flexibility
in placing the project file, which can theoretically be stored on
another drive inaccessible using relative paths, using relative paths
would break things.
This patch tries to address only one specific situation where we can
be sure relative paths work - when the user specifies the base directory
using a relative path against the project file. Since it's the user
who specifies the base path as relative and this relative path works
for him, we can be sure files within base path are reachable using
relative paths too.
Only files within the base path are stored as relative paths. Files
outside the base path are still stored as absolute paths.
You can view, comment on, or merge this pull request online at:
https://github.com/geany/geany/pull/3021
-- Commit Summary --
* Use relative paths for project session files if base directory is relative
-- File Changes --
M src/keyfile.c (39)
M src/keyfile.h (2)
M src/project.c (2)
-- Patch Links --
https://github.com/geany/geany/pull/3021.patchhttps://github.com/geany/geany/pull/3021.diff
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/3021
Removes deprecated symbols `sci_get_text`, `sci_get_selected_text`, `sci_get_text_range`. Internal use has rewritten. No known plugins use any of these functions. There are some false positives when grepping because they are referenced in comments. (geanygendoc, geanyctags) See #3019.
You can view, comment on, or merge this pull request online at:
https://github.com/geany/geany/pull/3025
-- Commit Summary --
* Remove deprecated symbol: sci_get_text
* Remove deprecated symbol: sci_get_selected_text
* Remove deprecated symbol: sci_get_text_range
-- File Changes --
M src/document.c (14)
M src/editor.c (63)
M src/sciwrappers.c (56)
M src/sciwrappers.h (6)
-- Patch Links --
https://github.com/geany/geany/pull/3025.patchhttps://github.com/geany/geany/pull/3025.diff
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/3025
Here is a list of deprecated symbols that are marked with `@deprecated`, `GEANY_DEPRECATED`, `GEANY_DEPRECATED_FOR`, and `GEANY_DISABLE_DEPRECATED`. Also noted are the version/API/date of deprecation (if known) and plugins they are used in.
As far as I can tell, the legacy plugin entry points (eg, `plugin_init`) are *not* marked deprecated, so should not be candidates for removal. Also, 22 plugins still reference 'void plugin_init': geanyextrasel, geanyinsertnum, geanylua, geanymacro, geanyminiscript, geanynumberedbookmarks, geanypg, geanyprj, geniuspaste, markdown, multiterm, pairtaghighlighter, pretty-printer, projectorganizer, scope, sendmail, shiftcolumn, spellcheck, tableconvert, updatechecker, vimode, xmlsnippets
`documents.h`
* `documents_foreach(i)` (use `foreach_document` instead)
+ not used by any plugins
`filetypes.h`
* `filetype_id` (use `GeanyFiletypeID` instead)
+ not used by any plugins
`keybindings.h`
* `GEANY_KEYS_EDITOR_MACROLIST` (since 1.25)
+ used by geanylua
+ removal would affect values of other symbols in the enum; it could be "removed" by changing the doxygen comment into a normal one
`plugindata.h`
* `GeanyFunctions`
+ not used by any plugins
* `GeanyKeyGroupInfo` (use `plugin_set_key_group` instead)
+ not used by any plugins
* `PLUGIN_KEY_GROUP` (use plugin_set_key_group() instead)
+ not used by any plugins
* `PluginFlags` (use `ui_add_document_sensitive` instead)
+ used by multiterm
* `PluginFields` (use `ui_add_document_sensitive` instead)
+ used by multiterm
* `document_reload_file` (use `document_reload_force` instead)
+ used by multiterm
* `DOC_IDX(doc_ptr)`
+ not used by any plugins
* `DOC_IDX_VALID(doc_idx)`
+ not used by any plugins
* `GEANY_WINDOW_MINIMAL_WIDTH`
+ not used by any plugins
* `GEANY_WINDOW_MINIMAL_HEIGHT` (use `GEANY_DEFAULT_DIALOG_HEIGHT` instead)
+ not used by any plugins
* `PROXY_IGNORED` (since 1.26/226, use `GEANY_PROXY_IGNORE` instead)
+ used by geanypy
* `PROXY_MATCHED` (since 1.26/226, use `GEANY_PROXY_MATCH` instead)
+ used by geanypy
* `PROXY_NOLOAD` (since 1.26/226)
+ not used by any plugin
`sciwrappers.h`
* `sci_get_text` (use `sci_get_contents` instead)
+ used by `document.c`
+ used by geanygendoc
* `sci_get_selected_text` (use `sci_get_selection_contents` instead)
+ used by `ui_utils.c`
+ used by plugins: addons, geanyctags, geanypy, pretty-printer, scope
* `sci_get_text_range` (use `sci_get_contents_range` instead)
+ used in `editor.c`
+ not used by any plugins
`tagmanager/tm_source_file.c`
* `tm_get_real_path` (since 1.32/235, use `utils_get_real_path` instead)
+ used by `utils.c`
+ not used by any plugins
`ui_utils.h`
* `ui_frame_new_with_alignment` (since 1.29, use GTK API directly)
+ used by plugins: geanypy, webhelper
* `ui_widget_set_tooltip_text` (since 0.21, use `gtk_widget_set_tooltip_text` instead);
+ not used by any plugins
`utils.h`
* `NZV(ptr)`, deprecated 2013/08, use `!EMPTY()` instead
+ not used by any plugins
* `setptr(ptr, result)`, deprecated 2011/11/15, use `SETPTR()` instead.
+ used by plugins: addons, geanydoc, geanymacro, geanyprj, geanyvc, spellcheck, treebrowser
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/issues/3019
This pull request replaces https://github.com/geany/geany/pull/2830 with the latest tagged ctags version.
You can view, comment on, or merge this pull request online at:
https://github.com/geany/geany/pull/2984
-- Commit Summary --
* <a href="https://github.com/geany/geany/pull/2984/commits/8283e46d65065bb031ef7f5093…">Update update-ctags.py to copy some files from the dsl directory</a>
* <a href="https://github.com/geany/geany/pull/2984/commits/140fec8a3439c03ac3ec278c9c…">Update to version p5.9.20211031.0 of ctags</a>
* <a href="https://github.com/geany/geany/pull/2984/commits/5b123972fbde3c12c765ebf689…">Call initRegexOptscript() in tm_ctags_init()</a>
-- File Changes --
M ctags/Makefile.am (10)
A ctags/dsl/es.c (3332)
A ctags/dsl/es.h (274)
A ctags/dsl/optscript.c (4422)
A ctags/dsl/optscript.h (88)
A ctags/main/CommonPrelude.c (162)
M ctags/main/args.c (106)
M ctags/main/dependency.c (47)
M ctags/main/entry.c (48)
M ctags/main/entry.h (17)
M ctags/main/entry_p.h (2)
M ctags/main/error.c (8)
M ctags/main/field.c (1036)
M ctags/main/field.h (43)
M ctags/main/field_p.h (15)
M ctags/main/flags.c (13)
M ctags/main/flags_p.h (3)
M ctags/main/fmt.c (4)
M ctags/main/htable.c (94)
M ctags/main/htable.h (23)
M ctags/main/kind_p.h (1)
A ctags/main/lregex-default.c (127)
A ctags/main/lregex-pcre2.c (140)
M ctags/main/lregex.c (1542)
M ctags/main/lregex_p.h (51)
M ctags/main/main.c (9)
M ctags/main/mio.c (27)
M ctags/main/options.c (762)
M ctags/main/options.h (1)
M ctags/main/options_p.h (17)
M ctags/main/parse.c (233)
M ctags/main/parse.h (13)
M ctags/main/parse_p.h (12)
M ctags/main/parsers_p.h (21)
M ctags/main/promise.c (45)
M ctags/main/promise.h (4)
M ctags/main/ptag.c (10)
M ctags/main/ptag_p.h (7)
M ctags/main/ptrarray.c (69)
M ctags/main/ptrarray.h (9)
M ctags/main/read.c (44)
M ctags/main/read_p.h (4)
M ctags/main/repoinfo.h (2)
M ctags/main/routines.c (1)
M ctags/main/routines.h (3)
M ctags/main/routines_p.h (3)
A ctags/main/script.c (527)
A ctags/main/script_p.h (62)
M ctags/main/seccomp.c (7)
M ctags/main/selectors.c (21)
M ctags/main/selectors.h (3)
M ctags/main/strlist.c (10)
M ctags/main/strlist.h (16)
M ctags/main/subparser.h (2)
M ctags/main/tokeninfo.c (4)
M ctags/main/tokeninfo.h (8)
M ctags/main/trace.c (16)
M ctags/main/trace.h (26)
M ctags/main/vstring.c (7)
M ctags/main/vstring.h (6)
M ctags/main/writer-ctags.c (66)
M ctags/main/writer-json.c (8)
M ctags/main/writer.c (8)
M ctags/main/writer_p.h (4)
M ctags/main/xtag.c (6)
M ctags/main/xtag_p.h (12)
M scripts/update-ctags.py (5)
M src/tagmanager/Makefile.am (1)
M src/tagmanager/tm_ctags.c (1)
-- Patch Links --
https://github.com/geany/geany/pull/2984.patchhttps://github.com/geany/geany/pull/2984.diff
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/2984