I think having a "reload all" might be useful. For example, if you checkout a different branch in git and suddenly have 10 files loaded in Geany that need to be reloaded.
See also failed implementation attempt #1471
Also related is merged #1246, which allows to have documents reloaded automatically.
Thanks for the info guys. I enabled the auto reload option and so far seems to be what I was looking for.
But are you still interested in #1471? I could make a patch from that and submit as a PR. Can't say I could complete it by myself but with help...
But are you still interested in #1471?
Personally not, and I have #1246 firmly OFF :)
As mentioned above, changing a branch in a revision control is a valid use case, running auto-formatting tools a.k.a. _code beautifiers_ like [`cargo fmt`](https://doc.rust-lang.org/book/appendix-04-useful-development-tools.html) and [pgFormatter](https://sqlformat.darold.net/) are too. I'm missing a `Shift` + `Ctrl` + `R` key combination to re-load all files (just below the **File -> Reload** pull-down menu would seem most logical to me). Are there any plans to implement that?
Yes, there are valid use-cases, but IIRC #1471 never actually solved the issue of only reloading files that had changed and how to handle buffers with unsaved changes.
If "somebody" contributed a PR that solved those issues in a reasonable manner it could be accepted, but as a totally volunteer project there are no "plans" other than what people contribute.
@peter-scholtens: There is currently no menu item at the moment, but you can already set up the keybinding. I do use it for quite a while and it works reasonably well (at least when I don't have many unsaved changes).

(at least when I don't have many unsaved changes).
That is why its hidden away in keybindings, whilst it squarks about it, there is no protection from yourself.
If "somebody" contributed a PR that solved those issues in a reasonable manner it could be accepted, but as a totally volunteer project there are no "plans" other than what people contribute.
I could try to write a pull request, but writing C instead of Rust feels like skydiving without the reserve parachute to me. So the code should execute the following sequence after pressing `Shift` + `Ctrl` + `R`:
- Make a list of all loaded files which are modified on disk. - Split this list in two lists, one having buffered/unsaved data, the other having no buffered/unsaved data. - If the first list is **not** empty offer a GUI pop-up with the buttons `Reload all`,`Reload files without unsaved modifications`,`Overwrite all`,`Cancel` or otherwise reload them directly.
Agree?
Yeah, thats a definite improvement over the current version.
Since the overlap list (modified both buffer and file) is available, maybe list it on the dialog to help the user decide. "Oh #$%^ I didn't realise I changed so much" presses the eject button or "Nah, its only one file I don't wanna keep" presses the `Reload All`.
In theory it could iterate through the modified buffers and ask about each one but I don't think its really needed. With any significant overlap of modified files and modified buffers it seems to me that the user needs to take a step back and not try to make an on-the-fly decision file by file.
As a C++ programmer I have to agree about C, but of course I am required to say the two magic words "Unsafe Rust" whereupon your parachute bursts into flames and plummets to segfault :smiling_imp:
I've elaborated a version which does allow re-loading all files which are **not-modified**, see the [branch here](https://github.com/peter-scholtens/geany/tree/re-load-all). The functionality is present under the pulldown menu _File -> Reload All (unmodified files only)_ of the main window.
The algorithm to implement this works roughly like: 1. Trigger checking the disk status of a single file with `document_check_disk_status` by e.g. key pressing or checking all files with `document_check_disk_status_others` when re-entering the window (the user could have done a revision change, untar, ..). Two distinctive functions are required for this, as a single file may trigger an avalanche effect of checking all others too if it is detected as modified (or deleted). The actual detection, and optionally reloading if allowed, is hidden inside `document_check_disk_status_single_file_and_optionally_reload`. 2. **Only** if the result of this function, called `modified_since_roundtrip` is **true**, ALL monitors will be refreshed. This is required, as the data content inside the monitors will be different: imagine if the monitor mentioned "3 files modified", then after saving one of them, it needs to be replaced with "2 files modified.".
This [branch](https://github.com/peter-scholtens/geany/tree/re-load-all) should now be fully functional, but please test and describe it if you see a bug. Furthermore, keep in mind that the GUI still needs reworks, as GtkInfoBar is now quite crowded, see the examples below. I will send a PR once I've finished that too.
**Deleted files** only require two buttons:

**A single modified file on disk** require three buttons:

**Multiple modified** files on disk require four buttons:

Multiple modified files on disk **with unsaved data** require five buttons:

github-comments@lists.geany.org