Valencia Roadmap & Whiteboard

Future features

The following features are planned but not yet implemented for Valencia:

  • Alternate build systems: There are other build systems besides autotools and make. Valencia should be flexible enough to allow the user to specify an alternate build system other than the default 'make'.

  • C support: Thanks to Vala's close relationship with C, many times in order to investigate the source code of libraries bound to Vala or simply to debug generated code, searching through C code is inevitable. It would be nice to extend Valencia's parser to support browsing C symbols to ease the transitions between the two languages.

  • Autocomplete enhancements: Autocomplete is a nice feature, but it could use several enhancements to make it even more streamlined with features like: type identifiers like full declarations or icons for completion suggestions, context-sensitive lists to avoid exposing nonstatic and protected/private members of classes, grouping suggestions by the most relevant (nested) scope.

  • Debugger: it might be nice to build a front-end to GDB which works as part of Valencia inside gedit. It's not completely clear whether we'll do this, since existing front-ends such as Nemiver seem to work somewhat reasonably well for debugging Vala code today.

Other languages

Valencia was designed for the Vala language, but Vala and C# are so syntactically similar that Valencia also works fine with most C# code (and, in fact, Valencia will accept files with a .cs extension).

It would not be difficult to extend the Valencia parser to support Java; we'd like to do this.

Architecture

Valencia contains a lightweight Vala scanner/parser which understands only as much of Vala as is necessary for symbol browsing. The first time you jump to any symbol in a Valencia project, Valencia finds all source files in your project and parses them. Valencia writes no files to disk: the parse tree for each source file is stored in memory, and is regenerated each time you run gedit.

Whenever you save a source file to disk, Valencia reparses it. In addition, each time you jump to a symbol definition, Valencia reparses any source files which have been modified but not yet saved. So symbol browsing always reflects your program as it exists in gedit, whether or not source files have been saved to disk.

We may add more details about Valencia's architecture here at some point. If you're interested in working on the Valencia code and have questions about how anything works today, don't hesitate to ask questions on the Valencia mailing list

Projects/Valencia/Roadmap (last edited 2013-12-09 23:04:02 by JimNelson)