- 30 Sep, 2020 2 commits
-
-
Christian Hergert authored
The goal here is to move to a JIT backed PCRE2 implementation, however this just gets an initial port in place to use PCRE2 for this code. We can eventually move other parts of GtkSourceView over to this implementation as well depending on how complete we need to be.
-
Christian Hergert authored
This creates an ImplRegex intermediate structure that we can use to switch the implementation from GRegex into PCRE2. Doing so will not only be faster, but also allow us to eventually migrate to using a JIT for the regex implementation as well as avoid deprecations from GRegex in future releases of GLib. Other modules will eventually need to be ported to this, but focusing on GtkSourceRegex would result in the largest gain from language specs.
-
- 24 Sep, 2020 1 commit
-
-
Christian Hergert authored
-
- 23 Sep, 2020 2 commits
-
-
Christian Hergert authored
This uses the sysprof collector interface for both debug and profiling when we detect we are being monitored by sysprof. This ensures that we get all of our profiling data in one place (since we will want profiling information from GTK itself side-by-side).
-
Christian Hergert authored
This will allow us to do profiling with sysprof-capture-4's collector interface just like GTK does.
-
- 22 Sep, 2020 2 commits
-
-
Christian Hergert authored
-
Christian Hergert authored
These were supposed to be removed when porting.
-
- 21 Sep, 2020 33 commits
-
-
Christian Hergert authored
-
Christian Hergert authored
-
Christian Hergert authored
If we can detect no changes, then try to avoid all the resizing.
-
Christian Hergert authored
This allows the tooltip to shrink back to it's smallest size rather than being pinned to the largest size.
-
Christian Hergert authored
-
Christian Hergert authored
We don't want to match everything when searching for these snippets.
-
Christian Hergert authored
-
Christian Hergert authored
-
Christian Hergert authored
-
Christian Hergert authored
-
Christian Hergert authored
This makes the INFO style more of a default type thing (which it is meant for).
-
Christian Hergert authored
Long term we still need to handle translations for these, but this gets things started.
-
Christian Hergert authored
-
Christian Hergert authored
-
Christian Hergert authored
-
Christian Hergert authored
-
Christian Hergert authored
-
Christian Hergert authored
-
Christian Hergert authored
We can access this in various places to avoid extra internal API.
-
Christian Hergert authored
-
Christian Hergert authored
This is more consistent with the accessor function.
-
Christian Hergert authored
-
Christian Hergert authored
We will need access from snippets so init it first.
-
Christian Hergert authored
This can be used to display information with the sourceview, such as tooltips related to cursor position.
-
Christian Hergert authored
This will be used to provide informative information about the chunk as we work through the snippet chunks.
-
Christian Hergert authored
A number of new objects are added as part of this commit to the GtkSourceView ABI. - GtkSourceSnippet provides an object representing a snippet to be inserted into a textview. Snippets are associated with a textview rather than a buffer because of incremental state that is necessary to interact with widgetry and event controllers. Additionally, it doesn't make sense to have this attached to the buffer when the view area could be different. - GtkSourceSnippetChunk is a single chunk of a snippet. A snippet contains zero or more chunks. A chunk can have a spec (which can be evaluated using variables) or text set (such as after typing in the editor). Also, a chunk can have a "focus-position" which allows the user to tab through the chunks of the snippet. - GtkSourceSnippetContext provides state which can be expanded as part of the snippet. This is useful to expand variables set by the application or filters to transform input text or other variables. - gtksourceview-snippets.c contains integration bits to be hooked into GtkSourceView. Keeping much of this outside of gtksourceview.c helps to keep things mostly self-contained but also ensures that we don't keep growing gtksourceview.c with complexity and size. Future additions to gtksourceview.c should be done this way when it makes sense (such as adding indenters). - GtkSourceSnippetBundle is used for multiple purposes because it is handy to do so without increasing the number of GObjects we need and because it flows naturally. It is used to parse new snippet files as well as merge multiple snippet files together. Furthermore, it serves as a GListModel with a filtered set of snippets when queried by the snippet manager. This type is private, however. - A completion provider is provided so that applications can use snippets provided by the snippet manager, however it still needs porting to the new completion engine. - Tabbing will expand the snippet based on the current word. - The classic style scheme has been adjusted to give us access to a focus position tag so that they are highlighted to the user. Style schemes bundled with GtkSourceView will want to implement this in a future commit. - Applications can insert snippets using gtk_source_view_push_snippet(). - Using the mouse or touch input to move to another chunk will cause it to be focused (and selected). Moving between chunks manually will cause the snippet to be released. - A number of snippet variables are made available as seen in other snippet engines, notable textmate and Visual Studio Code. - You can toggle snippets on/off in test-widget using a checkbox. The snippets from data/snippets/ are available based on the current language. - Documentation for the file format and snippet text format is provided as part of the gtk-doc installation. - A snippets.rng file is provided to validate snippet files - Various style schemes have gotten "snippet-focus" styles that apply to the focus positions of the snippet.
-
Christian Hergert authored
-
Christian Hergert authored
-
Christian Hergert authored
This exited in the previous completion implementation, and is fairly easy to support in the new implementation too.
-
Christian Hergert authored
This existed in the previous implementation of completion, and so we should keep it around for compatibility.
-
Christian Hergert authored
-
Christian Hergert authored
-
Christian Hergert authored
-