[Builder] Builder 3.22 Planning



# Builder 3.22 Planning

We have a pretty aggressive roadmap for 3.22, and so it's time to get
involved if any of this interests you.

## Project and File Templates

Now that the plumbing has landed for templates, it's time to propagate
that into the UI for 3.22. We need to allow the users to select a
template using GNOME 3 patterns and selection a desired language.

  https://wiki.gnome.org/Apps/Builder/Templates

## Panel Engine

Plugins have become a necessity for Builder for a few reasons. Now that
developers are starting to extend Builder, we need to come up with a way
to manage panels that has some degree of flexibility without
compromising our "code-first" editing story.

Work has started on a new panel engine for GTK+.

  https://wiki.gnome.org/Apps/Builder/Panels

## Improved Shortcuts

One thing that has gotten significantly more difficult since the
GtkActionGroup/GtkUIManager days is managing complex shortcut engines.
Especially when you need pre-defined sets of keybindings. Some
applications such as GIMP might want a "Photoshop emulation" layer.

Builder has this problem with managing Vim, Emacs, and Gedit keybinding
modes. We intend to improve this story in 3.22 and bridge the gap
between GAction, G_SIGNAL_ACTION, and custom keyboard shortcut layers.

 https://wiki.gnome.org/Apps/Builder/Shortcuts

## Custom Commands

Tightly integrated with extended shortcut features will be the ability
to execute custom commands. Users should be able to map a keyboard short
to some arbitrary command, possibly executed in the application runtime
(such as Xdg-App).

  https://wiki.gnome.org/Apps/Builder/CustomCommands

## Multi-Process

Builder gained support for multi-process in 3.20, but still needs more
plugins ported to take advantage of the feature. We'd like to see clang
and Vala run in multi-process mode and be resiliant to crashes.
Additionally, we'd like to see the use of cpu and memory cgroups to
prevent runaway memory leaks and cpu hogs.

  https://wiki.gnome.org/Apps/Builder/MultiProcess

## Auto-Indenters

As Builder gains features, we see more variety in syntax formatting. We
currently support a few modes well (GNU C89, Python), but we can do a
lot better. We'd also like an indent engine that works even better in
the presence of an AST.

  https://wiki.gnome.org/Apps/Builder/AutoIndenters

## Run Support

The first step to gaining a debugger is to support executing programs.
Builder currently lacks this feature and it has a few caveats to it's
success. We generally want to run programs from an "installed" state to
avoid out-of-tree bugs. We also need to run inside of runtimes.
Abstracting such issues in the precense of build system abstractions is
some work. Even more so when we need to negotiate debugger integration
with the runtime (such as Xdg-App).

  https://wiki.gnome.org/Apps/Builder/Running

## Build Tooling

While Builder 3.20 can build projects inside an Xdg-App runtime, we do
not yet have a way to build-finish, export, or deploy an application.
Extending this story will have wide-reaching impact.

  https://wiki.gnome.org/Apps/Builder/XdgApp

## Terminal

We'd like to allow users to bring their GNOME Terminal profiles with
them.  By default, we would like to see this match GNOME Terminal
settings, or find some defaults that we like based on light/dark mode.

  https://wiki.gnome.org/Apps/Builder/Terminal

## Command Bar

We would like to extend the Command Bar to support history.
Additionally, we'd like to see it support a basic interaction model so
you can programmatically do small tasks you might normally use a
terminal for.

For example: "hex(10)" => "0xa"

  https://wiki.gnome.org/Apps/Builder/CommandBar

## Perspectives

Perspectives (that side-bar-thingy) in 3.20 were the first introduction
into a long-running goal in Builder to have "workspaces" for different
types of development. For example, a UI designer will have its own
perspective.

We would like to spend some time researching if the side-bar is the best
way to achieve our perspective switcher, or if another model is more
effective.

 https://wiki.gnome.org/Apps/Builder/Perspectives

## Search

The search bar has not changed much since the beginning of Builder. We'd
like to see it extended to support more interactive features. For
example, if I type "libide/" while working on the Builder project, I
probably want to see a directory listing of the libide/ directory. There
are many other "smart handlers" we can implement here.

  https://wiki.gnome.org/Apps/Builder/GlobalSearch

## Spell Check

Now that GSpell has been split out into a library, implementing spell-
check for Builder should be a much easier project. We'd like to see
code-spell-check implemented for strings and comments, as well as
breaking function_names and checking their individual components.

  https://wiki.gnome.org/Apps/Builder/SpellCheck

## Search and Replace

A long-missing feature, which is pretty self explanatory. We would like
to do a design review of the current search-replace in Gedit, and see if
that is something we want to copy, or if we should work on a new design
that can be shared between projects.

  https://wiki.gnome.org/Apps/Builder/SearchAndReplace

## Distraction-Free Mode

I'm writing this email from Gedit's "distraction-free" mode. A feature
that came out of a discussion Palo and I had back at the Brno GUADEC.
This is something we'd like to see in Builder as well, and is somewhat
dependent on the panel engine landing first.

  https://wiki.gnome.org/Apps/Builder/DistractionFreeMode


That's quite an exhaustive list! Please come join us and help make it a
reality sooner rather than later.

-- Christian



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]