• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. Custom IC SKILL
  3. Text editor or framework for SKILL...

Stats

  • Locked Locked
  • Replies 29
  • Subscribers 153
  • Views 31793
  • Members are here 0
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Text editor or framework for SKILL...

ToMWUT
ToMWUT over 16 years ago
Hello All,

I've got some general questions about tools which could be used to write programs in SKILL. First of all could you recommend some text editor which highlights the SKILL syntax. Right now my main problems concerns syntax errors based on the problem that I'm for example passing wrong argument types to my procedures... Is there maybe a tool which could help me with this problem in SKILL, such as for example Eclipse for J2EE or Visual Studio for .Net? If not – even some text editor with the right syntax highlight for SKILL will be sufficient.

Thanks,

ToM
  • Cancel
  • skillUser
    skillUser over 16 years ago

    Hi ToM,

    Personally I use "gvim" and am pretty happy with it, but it only performs syntax hilighting.  I believe that the emacs-based SKILL mode can also give indication of the function arguments (possibly also indicating data types?) but this is a pretty old extension and I don't know if it is being maintained or updated.

    The SKILL mode in gvim seems to recognise most SKILL syntax that I work with right out-of-the-box, and the syntax files are customizable by the user, so you can always write your own or modify the existing to further meet your needs.  Another good thing about gvim is that you can use it on Unix/Linux as well as PCs.

    There is a group within Cadence that has written a SKILL development environment (using Eclipse, I believe, though I'm fuzzy on the details), and this would be available as part of a services deal.

    Otherwise, in my opinion, your best bets for an editor would be, in order, gvim, xemacs, nedit.

    YMMV

    Regards,

    Lawrence.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • ahamlett
    ahamlett over 16 years ago

     In Windows, I use Notepad++ from notepad-plus.sf.net and it recognizes SKILL as LISP code with many programming oriented features including folding and highlighting all occurances of a selected word.

     In Linux, I use Scite which isn't as good as Notepad++ but almost up there. It also color codes as LISP code.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 16 years ago
    In IC613 there is also the new SKILL development environment which has syntax highlighting (and interactive debug capability).

    More and more features are being added over time to this.

    I personally use vi because it has a built in LISP mode. There are syntax highlight files out there for nedit, and also a skillMode for emacs - I'm happy to send that (no guarantees) to anyone who wants it.

    Regards,

    Andrew
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • dmay
    dmay over 16 years ago

    I use NEdit which has syntax highlighting and the ability to setup calltips and tags (ctags) files. You can find a Skill syntax highlighting setup file on the web. If you are not familiar with tags and calltips, here is what they do and how we use them.

    Tags or ctags files are essentially index files that list the names of functions and the corresponding file where these functions can be found. You can get more details by doing a man on ctags in Unix or reading about them in the NEdit documentation. We have a cronjob that builds a tags file for all of our Skill code and we load the tags file when we start NEdit. When we come across a function call in some code, we can highlight the function name and run the "Find Definition" command from the NEdit menus or a bindkey and it will either jump within your code to the function definition, or open a separate file containing the function and jump to the definition. Very handy. We even make it work with Cadence functions by jumping to the entry in the skill finder reference file.

    Sample tags entries:
    cad.tags:dbGetTrueOverlaps      /cad/ic/5141_500.4.66/doc/finder/SKILL/DFII_SKILL/skdfref.fnd   /^("dbGetTrueOverlaps"$/;"      r
    cad.tags:MTdbGetTrueOverlaps  /home/dmay/sw/df2/skill/db/MTdbTransform.il     /^procedure(MTdbGetTrueOverlaps($/;"    r

    Calltips are those pop-up bubbles that tell you what the arguments are for a function. In NEdit, these work off the tags file and when you show a calltip, it will use the tag to find the function and then display the first few lines of the function in the pop-up bubble.

    Derek

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • ToMWUT
    ToMWUT over 16 years ago
    Thank you all for your reply,

    I've managed to install SKILL language highlighting options in Nedit. It works just fine, but I've got a problem with ctags. While running ctags (ver. 5.7) under my Linux with SKILL files it doesn't produce any output besides code:

    !_TAG_FILE_FORMAT 2 /extended format; --format=1 will not append ;" to lines/

    !_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/

    !_TAG_PROGRAM_AUTHOR Darren Hiebert /dhiebert@users.sourceforge.net/

    !_TAG_PROGRAM_NAME Exuberant Ctags //

    !_TAG_PROGRAM_URL http://ctags.sourceforge.net /official site/

    !_TAG_PROGRAM_VERSION 5.7 //

    And when I use ctags with my C# files it works just fine. I've read on ctags page that SKILL is not on the list of supported languages. Is there any solution to this problem?

    Thanks,

    ToM
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • dmay
    dmay over 16 years ago

    We had to build our ctags with our own script. That is why I included the syntax. Basically, you need the command name, the path to the file that includes the function definition and the search string for finding the definition within the file. You'll need to write your own script to build this. It is not that difficult if your skill coding format is consistent.

    Derek

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • ToMWUT
    ToMWUT over 16 years ago

    Thank you Derek,

     

    Do you have any manual about writing ctags? An maybe you would be so kind and put your ctags files for SKILL here or send it via mail…

     

    Thanks,

    ToM

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • dmay
    dmay over 16 years ago

    Here is a perl script that will create two tags files.

    1. /tmp/cds.tags - This is created from the cdsFinder files in $CDS_HOME/doc/finder/SKILL

    2. /tmp/my.tags - This is created from all *.il files in /tmp/myskill

    Our Skill files have procedure definition with a first line that look like this:
    procedure(myProc1(data @optional curTree headers lvl (pfx "") used)
    procedure( anotherProcName()
    procedure(yetAnotherProc(form prefix)

    The regular expression defined in the ctags call in the Perl script is written to assume this format. If your procedures follow a different convention, then you'll need to adjust the regular expression to get it to work.

    #!/usr/local/bin/perl

    system("rm /tmp/my.tags /tmp/cds.tags");

    my $home = $ENV{CDS_HOME} . "/doc/finder/SKILL";
    my $cmd = "find $home/* -name '*.fnd' | ";
    $cmd .= "ctags -R -f /tmp/cds.tags --langdef=finder --langmap=finder:.fnd --regex-finder=\'/^\\(\"(\\w+)/\\1/\' --languages=finder -L -";
    system( $cmd );

    my $home = "/tmp/myskill";
    my $cmd = "find $home -name '*.il' | ";
    $cmd .= "ctags -R -af /tmp/my.tags --langdef=skill --langmap=skill:.il --regex-skill=\"/^\\s*[nml]*procedure\\(\\s*(\\w+)/\\1/\" --languages=skill -L -";
    system( $cmd );

    Derek

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • jck22
    jck22 over 16 years ago

     Hi Andrew,

     

    I am wondering if it is possible for me to have a copy of the skillMode for emacs?

     

    Thank you for your help.

    Jerry

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 16 years ago
    Jerry,

    Please send me a personal message, and then I can send it to you directly, as I don't have your contact details,

    Regards,

    Andrew
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
>

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information