Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Releases: Remillard/VHDL-Mode

Version 1.8.12

03 Mar 16:53
9faf7ee

Choose a tag to compare

  • For VHDL-2008 support, added the keyword case? to syntax and
    beautification. (Issue #162)
  • Fixed the syntax for a return inside of a function body. (Issue #161)
  • Fixed the scoping on variable assignment in a particular case where the
    left hand side contained a slice with internal expressions (it worked for
    signal assignments.) (Issue #163)
  • Fixed scoping when typecasting is used on the left hand side of a mapping
    in a port instantiation. (Issue #158)

Version 1.8.11

04 Dec 15:49
364d5b3

Choose a tag to compare

  • A user reported that beautification was strange inside of a block
    construct, specifically with an instantiation. As it turns out there were
    multiple issues. First, in syntax, the block construct required the ending
    label and this is technically optional, so I made the syntax close correctly
    when a block does not end with its label. The opening label for a block
    IS mandatory per the LRM however.

    Secondly, the instantiation beautification error was due to the fact that in a
    block the generic map construct ends differently than anywhere else. I'd
    done a trick with the beautification engine where it ignored generic map in
    lieu of generic because of that difference in ending structure. The
    example provided by the user had a generic map in the instantiation so
    it was ignored and strange things happened with beautification. I created
    a branching structure in the beautification engine for block (as I've done
    for other lexical structures) so generic map no longer gets ignored in the
    concurrent section.

    A reminder about block usage and syntax. The LRM does indicate the is
    is an optional word however for my purposes it is not optional. block
    may have a guard expression and I need a delimeter to mark the place between
    the guard expression and the declarative region. I believe I put in a
    snippet for this for a prior issue and put the is in there.

Version 1.8.10

03 Dec 15:16
de083e3

Choose a tag to compare

  • I think I've got case/when alignment structures more or less sorted out and
    no one had to die or anything this time around. Assignments followed by
    positional arguments should align correctly in that order most of the time,
    and then when choice => should align correctly followed by assignments on
    those lines. Hopefully that settles the matter once and for all, but I'll
    take another crack at it if something goes pear shaped.

    Just a note, all you folks who are putting a ton of things on the same
    when choice => line for compactness, there is a limit to this and I think
    I've reached it. If you are getting beautification results you don't like
    because you've put entire paragraphs on the same line after a when choice =>
    just put it on the next few lines please. Your code maintainer will thank
    you someday (or at least won't curse your name overmuch.)

  • Added basic support for aggregate assignment. The location of this paren
    group is in a tricky spot (due to the way the syntax file is setup looking
    for lexical contexts) so it really is just basic support. I don't think
    symbols or identifiers inside the paren group will scope as finely grained
    as in other places in the code, but at least it won't flag as an invalid
    closing paren anymore. I might be able to get something more sophisticated
    in place with more experimentation since this might be the only VHDL construct
    that starts with opening parenthesis.

Version 1.8.9

25 Nov 15:28
ddacc2b

Choose a tag to compare

  • Tweaked beautification rules to permit putting an entire if/then/end if
    statement on the same line as when <choice> =>.
  • Altered language syntax rules to attempt to scope the typecast ' mark for
    known types. This was done because an autogenerated bit of code came up
    with std_logic'('0') which really confused the syntax rules.
  • Adjusted the order of some alignment to make long lists of when choices with
    in-line assignments all line up properly.

Version 1.8.8

07 Aug 13:08
27ba2cb

Choose a tag to compare

  • Gently adjusted some scope names primarily surrounding words that often
    define the beginning and ending of code blocks. Some color schemes might
    now show these better (and many won't if they don't utilize that scope.)
    In other places some constructs were better specified (such as loop
    becoming keyword.control.flow.loop instead of a more generic
    keyword.other).
  • Added support for entity generic type. It should scope, beautify, and
    properly copy with instance copying and testbench creation. Thanks to
    @dkAlex on the Sublime Forum for providing a really nice bug report with
    sample code and screenshots and everything.

Version 1.8.7

17 Jun 13:20
edd0cd4

Choose a tag to compare

  • Fixed a long-time bug (Issue #104) finally. This issue involved a subtle
    issue with how single quote character literals were captured in the syntax
    file. I'd been using a "not a character" construct to distinguish a single
    quoted character literal from a singleton single quote used for attributes
    or typecasting. However this would consume the "not a character" which
    caused some problems with scoping the character consumed especially if it
    was a parenthesis. The actual solution was to use a look-forward and make
    sure this was a character literal before capturing a character literal.
    In any event, this bug has been around for awhile any my apologies to
    @lenigoor, @Sv3n and anyone else impacted by it.

Version 1.8.6

14 Jun 19:48
ab53231

Choose a tag to compare

  • Per request, added the block construct to both syntax and beautification.
    Apologies for not catching this sooner as I do try for complete coverage of
    the language. One caveat, while the LRM defines the keyword is as optional,
    I cannot support that variation in syntax. I need to separate valid
    constructs in the guard expression region and the declarative region and the
    keyword is is my separator between the two. Issue #133. Thanks to
    @rolpks for finding this.
  • Also tweaked the snippet for block to make it of better use by putting
    the entire guard expression portion into a tab (so that the user may
    simply hit delete if no guard expression is desired -- probably most of the
    time) and adding a space for declarative region.
  • Block commenting did not beautify well as my comment ignoring method is
    centered around line comments. Added some basic block comment support to
    beautification but be aware it's pretty basic currently until I can come up
    with a different model for handling it (or rather for everything else to
    ignore this text.) Issue #134
  • Fixed a problem I noticed with if-generate beautification. It wouldn't
    de-indent correctly and now it does.

Version 1.8.5

07 Jun 18:19
3bee1af

Choose a tag to compare

  • Probably should have done this a long time ago, however I've added a number
    of commands to the right-click context menu under the "VHDL Mode" subheading.
    Unfortunately the subheading will remain visible no matter what, however
    the commands will not show if you aren't editing a VHDL source file.
  • The "paste" commands will show the name of the object last copied in the
    menu. If there has been no copy performed, the menu items will not show.

Version 1.8.4

24 May 13:16
207b5d8

Choose a tag to compare

  • Fixed an urgent bug reported by dkalex on the Sublime Text forums where
    paste as testbench would fail if the entity had generics inside. (Issue #130)
    I'd used a deque object "is not None" to check for objects and it turns out
    deque objects are never None, even if empty.

Version 1.8.3

20 May 19:56
5b9cfa6

Choose a tag to compare

  • Fixed another bug in the messages.json file which shows the changes that were
    altered in the version. I don't know if it'll display anything for prior
    revisions so please feel free to visit
    https://github.com/Remillard/VHDL-Mode/releases
    for the change notes for the past few releases. They mirror what I put into
    this file.
  • Fixed a problem with the regex for the assignment operator when working with
    multiline statements. (Issue #125).
  • Fixed a problem with the regex of when to ignore a when statement for case
    statements, but also properly accept when in assignments. (Issue #126)
  • Tweaked a few snippets for better usability.
  • Fine tuned subprogram beautification particularly around the closing paren
    of the interface declaration (Issue #89).
  • Fixed function syntax for operator overloading. (Issue #128)
  • Fixed range keyword syntax not being scoped in an interface declaration
    (Issue #127)
  • Fixed scope error for assert for sequential statements. (Issue #124)
  • Fixed issue with subprogram copying. My apologies to all who may have needed
    that feature as the bug had stuck around for a long time. I believe it's
    fixed now though. (Issue #90)
  • Fixed a little problem that re-emerged with the recent release of Sublime
    where my post-beautification viewport shift fix was no longer working. Had
    to add a little more delay in the shift to get past the screen repaint that
    happens when the buffer is replaced.