Forum: FPGA, VHDL & Co. Code Beautify - ähnlich Emacs VHDL Mode


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Stefan (Gast)


Lesenswert?

Hallo,

gibt es ein Tool das ein Code Beautify machen kann ähnlich dem Emacs 
VHDL Mode?
Emacs kann ich leider beruflich nicht einsetzen, aber vielleicht eine 
Art Beautify Script vor einem SVN Commit?

Stefan

von Freddy (Gast)


Lesenswert?

Hi,

es gibt ein Perl Modul 
(http://search.cpan.org/~mykl/Hardware-Vhdl-Tidy-0.8/), das habe ich mal 
probiert.
Es sorgt zwar für einigermaßen gutes Indenting, aber eine sauber 
geordnete Port Map oder Entity mit ausgerichteten Elementen (alle bei => 
ausgerichtet) schafft es nicht.
Aber vielleicht kann man es ja dafür aufbohren?


[perl]
#!/usr/bin/perl

# 
http://search.cpan.org/~mykl/Hardware-Vhdl-Tidy-0.8/lib/Hardware/Vhdl/Tidy.pm



#  Retrieve command line argument
#
#use strict;
use IO::File;
use Hardware::Vhdl::Tidy qw/ tidy_vhdl_file /;

my $file = $ARGV[0];

# check to see if the user entered a file name.
die "syntax: [perl] vhdl_tb.pl existing_file.vhd\n" if ($file eq "");

my $old_file = join "_", $file, "old";
my $tempfile = join ".",$old_file,"vhd";
#my $tempfile = IO::File->new_tmpfile;

die "Oops! A file called '$new_file.vhd' already exists.\n" if -e 
$old_file_vhd;


# -----------------------------------------------------
# Tidying original and dumping output into a temp file
# -----------------------------------------------------
    tidy_vhdl_file( {
        source               => $file,
        destination          => $tempfile,
        # the following args are optional, and the values shown are the 
defaults:
        indent_spaces        => 4,
        cont_spaces          => 0,
        tab_spaces           => 4,
        starting_indentation => 0,
        preprocessor_prefix  => '#',
        indent_preprocessor  => 0,
    } );
# -----------------------------------------------------
[/perl]

von Klaus (Gast)


Lesenswert?

Sigasi kann das auch auf Knopfdruck.

von Seppl (Gast)


Lesenswert?

Ja Sigasi kann das, aber wenn der Arbeitgeber dafür keine Lizenz 
rausrückt, die freie Lizenz nicht reicht oder einfach eine Installation 
nicht erlaubt dann nützt ihm das auch nichts.

Außerdem das ganze per Script zu machen gibt sehr viel Flexibilität für 
große Entwicklungsprojekten und automatisierten Toolchains.

von Heinrich H. (Firma: Ich.AG) (hhanff)


Lesenswert?

Seppl schrieb:
> Außerdem das ganze per Script zu machen gibt sehr viel Flexibilität für
> große Entwicklungsprojekten und automatisierten Toolchains.
Dann könnte man emacs auch interaktiv verwenden:
1
emacs -batch -l ~/.emacs filename.vhd -f vhdl-beautify-buffer
sollte es tun.

von Willey (Gast)


Lesenswert?

Heinrich H. schrieb:
> Dann könnte man emacs auch interaktiv verwenden:emacs -batch -l ~/.emacs 
filename.vhd -f vhdl-beautify-buffersollte es tun.

Danke für den Tipp! Das ist der Wahnsinn!!!!

von Heinrich H. (Firma: Ich.AG) (hhanff)


Lesenswert?

Willey schrieb:
> Danke für den Tipp! Das ist der Wahnsinn!!!!
Ist das ironisch gemeint???

von René D. (Firma: www.dossmatik.de) (dose)


Lesenswert?

Vhdl-nice war mal ein guter Anfang mit lex und yac.

Leider schwer zu finden, such mal nach
vhdl-nice-0.1d.tar.gz

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.