Room for Improvement

It is no secret that Sigasi wants to take on Emacs and the Emacs VHDL mode. I have posted several articles about the fundamental differences between Emacs and Sigasi. It usually boils down to the limitations of regular expressions and pattern matching. There are just certain things that require a parser rather than a simple pattern matcher.

Code Formatter

But we have to say that the VHDL Emacs mode has given us quite a bad time when it comes to beating the Emacs VHDL code formatter. For the longest time, we were almost ashamed of the quality of our code formatter in comparison with the Emacs VHDL formatter. Just recently, we have covered that issue too.

What is still missing?

There is an Emacs emulator available for Sigasi (and for Eclipse), so you can keep using your old key bindings. But there must be other things that you miss when switching from Emacs to Sigasi. Let's build a list of (relevant and technical) things that are missing from Sigasi HDT. All of your missing Emacs features are welcome in the comments section, below.

Comments

Well if you were still

Well if you were still looking for interesting features to implement, I use the tab-completion quite a lot. You can start typing a token name (constant, variable, signal, etc) and hit tab and it'll complete it out of all the tokens vhdl-mode knows about. Thus you could have a package with a number of address constants in one buffer, and be writing the address decoder and type C_FOO and you can then cycle between C_FOOBAR_DATA_ADDR, C_FOOBAR_CONFIG_ADDR, C_FOOBAR_FOOBAR_ADDR, and so forth.

Have been tinkering a bit with the technology preview a bit but haven't run into this one yet. It might be implemented, but I couldn't say. Anyhow, I don't typically use stuttering for typing, except in one case. Comments. In vhdl mode you can type '--' and get a comment, naturally. If you type '---' you get a line out to the page edge (and this will vary based on what indention you use). If you type '----' you actually get a structure like:
-------------------------------
-- _<-- and the cursor goes here
-------------------------------
which is insanely handy for adding commentary before processes, blocks, other major milestones.

Commenting after a line is automatically shifted out to a predefined location, and then subsequent comment lines are automatically commented as you type and start at that indentation level.

Couldn't say how hard that is to implement in Eclipse, but I like good comments and features that make commenting natural and easy are a huge benefit in my mind.

Autocompletion is a built-in

Autocompletion is a built-in feature for almost every IDE plugin in Eclipse, and Sigasi is no exception. However, it's not tab-complete in Eclipse, its CTRL-Space.

Auto align and ident

I've only started using Sigasi, so I may be missing a trick.

With emacs, the indenting is done automatically (either after pressing space or return), but with Sigasi I have been doing crtl-a (select all) followed by ctrl-i to indent.

With aligning, I select a block and then hit ctrl-A, but there doesn't seam to be a way of aligning all the blocks in a file in one go, and having to scroll up or down to ensure I have all the block is tiresome. Emacs is ctrl c, ctrl b

Select code block

George, what you describe is the best way to indent code in Sigasi HDT 1.0.

We have a feature _planned_ where you just press ALT+UP to select an ever larger syntactic block of code. You need to press ALT+UP several times (depending on how much of your code you want to select). Would this new feature help you?

Align and indent

Hi George,

Sigasi 2.0 has an automatic format feature that beautifully aligns your code.
Just select the section you want to format and press CTRL-SHIFT-F.
Press CTRL-SHIFT-F without a selection to format the entire file.

Regards,
Hendrik.

1.0 indent depth

Hi

I'm still working with 1.0, so this may be different in 2. When a vhdl statement takes several lines, I like to line up all the RHS together (as emacs does) and not line up the RHS with the LHS. See the following example.

emacs

if something then
  a <= first really long clause and 
           second really long clause and
           third really long clause;
  b <= x;
end if;

Sigasi 1.0

if something then
  a <= first really long clause and 
  second really long clause and
  third really long clause;
  b <= x;
end if;

I don’t seam to be able to

I don't seam to be able to type the comment in away that keeps the formatting.

You’re right. Let me look

Keep the formatting -> You're right. Let me look into this.

Code indentation is now

Code indentation is now fixed.

Indenting multiline statements

We do not do line wrapping yet in 2.0, but it is a planned feature.