summaryrefslogtreecommitdiffstats
path: root/docs/roadmap.md
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--docs/roadmap.md127
1 files changed, 127 insertions, 0 deletions
diff --git a/docs/roadmap.md b/docs/roadmap.md
new file mode 100644
index 0000000..f2749f6
--- /dev/null
+++ b/docs/roadmap.md
@@ -0,0 +1,127 @@
+gedit roadmap
+=============
+
+This page contains the plans for major code changes we hope to get done in the
+future.
+
+See also the
+[Tepl roadmap](https://gitlab.gnome.org/GNOME/tepl/blob/master/docs/roadmap.md).
+
+See the [NEWS file](../NEWS) for a detailed history.
+
+If you often contribute to gedit, feel free to add your plans here.
+
+Making the gedit source code more re-usable
+-------------------------------------------
+
+Status: **[in progress](https://wiki.gnome.org/Apps/Gedit/ReusableCode)** (this
+is an ongoing effort)
+
+Recently done:
+- gedit 3.36: start to use the [Tepl](https://wiki.gnome.org/Projects/Tepl)
+ library.
+
+Next steps:
+- Use more features from the [Tepl](https://wiki.gnome.org/Projects/Tepl)
+ library, and develop Tepl alongside gedit. The goal is to reduce the amount
+ of code in gedit, by having re-usable code in Tepl instead.
+
+New version of gedit on Windows
+-------------------------------
+
+Status: **done**
+
+[gedit on the Microsoft Store](https://www.microsoft.com/store/apps/9PL1J21XF0PT).
+
+Making gedit suitable on a smartphone
+-------------------------------------
+
+Status: **[in progress](https://gitlab.gnome.org/GNOME/Initiatives/-/issues/13)**
+
+gedit is installed by default with the [Librem 5](https://puri.sm/products/librem-5/)
+smartphone.
+
+Replace search and replace dialog window by an horizontal bar below the text
+----------------------------------------------------------------------------
+
+Status: **[todo](https://gitlab.gnome.org/GNOME/gedit/-/issues/288)**
+
+To not hide the text.
+
+Changing character encoding and line ending type of opened files
+----------------------------------------------------------------
+
+Status: **todo**
+
+To fully support GtkFileChooserNative and better sandboxing.
+
+Note that the integrated file browser plugin needs access at least to the whole
+home directory. But the work on this task (with the code in Tepl) would allow
+better sandboxing for other text editors that don't have an integrated file
+browser.
+
+Handle problem with large files or files containing very long lines
+-------------------------------------------------------------------
+
+Status: **started in Tepl**
+
+As a stopgap measure, prevent those files from being loaded in the first place,
+show first an infobar with a warning message.
+
+Longer-term solution: fix the performance problem in GTK for very long lines.
+
+For very big file size (e.g. a 1GB log file or SQL dump), it's more complicated
+because the whole file is loaded in memory. It needs another data structure
+implementation for the GtkTextView API.
+
+Do not allow incompatible plugins to be loaded
+----------------------------------------------
+
+Status: **todo**
+
+There are currently no checks to see if a plugin is compatible with the gedit
+version. Currently enabling a plugin can make gedit to crash.
+
+Solution: include the gedit plugin API version in the directory names where
+plugins need to be installed. Better solution: see
+[this libpeas feature request](https://bugzilla.gnome.org/show_bug.cgi?id=642694#c15).
+
+Be able to quit the application with all documents saved, and restored on next start
+------------------------------------------------------------------------------------
+
+Status: **todo**
+
+Even for unsaved and untitled files, be able to quit gedit, restart it later and
+come back to the state before with all tabs restored.
+
+Better C language support
+-------------------------
+
+Status: **todo**
+
+- Code completion with Clang.
+- Align function parameters on the parenthesis (function definition /
+ function call).
+- Generate and insert GTK-Doc comment header for a function.
+- Split/join lines of a C comment with `*` at beginning of each line, ditto when
+ pressing Enter (insert `*` at the beginning of the new line).
+
+Improve printing UI workflow
+----------------------------
+
+Status: **todo**
+
+Implement it like in Firefox, show first a preview of the file to print.
+
+Avoid the need for gedit forks
+------------------------------
+
+Status: **todo**
+
+There are several forks of gedit available: [Pluma](https://github.com/mate-desktop/pluma)
+(from the MATE desktop environment) and [xed](https://github.com/linuxmint/xed)
+(from the Linux Mint distribution). xed is a fork of Pluma, and Pluma is a fork
+of gedit.
+
+The goal is to make gedit suitable for MATE and Linux Mint. This can be
+implemented by adding a “gedit-classic” configuration option.