Hi,
I am Matthias, a TTCN-3 tool developer from Nokia.
Thank you for opening your work. Your repository osmo-ttcn3-hacks helped me to understand how other developers use TTCN-3 for testing. This gave me valuable insights for tool development.
I hope I can give something back by opening up our internal TTCN-3 tools as well. Harald suggested to introduce them on this list. I'd appreciate your feedback.
Our project is called ntt and it provides various tools for working with TTCN-3 [1]. For example, you can create a tags file:
$ ntt tags ./osmo-ttcn3-hacks/bts >TAGS
Or you can list things. To filter cyclic imports, for example:
$ ntt list imports ./osmo-ttcn3-hacks/bts | tsort 1>/dev/null
But the most interesting piece is probably the TTCN-3 language server: ntt implements the language server protocol. This makes ntt a universal TTCN-3 language plugin for virtually any editor or IDE [2].
It's still very much beta, but we are finishing the Go to Definition feature (as replacement for ctags files). The next feature would be adding various diagnostics.
It would be great if you could give ntt a try and share your experience or editor configuration with me.
This is my first open source project and we still have to figure some stuff out. So please excuse if there are still some rough edges.
Cheers, Matthias
[1] https://nokia.github.io/ntt/ [2] https://nokia.github.io/ntt/editors/
Hi Matthias,
thanks for reaching out.
On Thu, Feb 18, 2021 at 01:25:39PM +0000, Simon, Matthias (Nokia - DE/Ulm) wrote:
Our project is called ntt and it provides various tools for working with TTCN-3 [1]. For example, you can create a tags file:
$ ntt tags ./osmo-ttcn3-hacks/bts >TAGS
I just built it and tried that - looks fine so far.
Or you can list things. To filter cyclic imports, for example:
$ ntt list imports ./osmo-ttcn3-hacks/bts | tsort 1>/dev/null
BTS_Tests.ttcn:1889:7: illegal character U+0025 '%'
I guess we are using several TITAN specific bits an features which may not be supported or intended to support in ntt?
by the way, did you consider posting to the Eclipse TITAN forum? I'm sure folks over there are also interested to hear about new/additional open source TTCN3 tools.
Regards, Harald
Hey,
I just built it and tried that - looks fine so far.
Not all TTCN-3 language constructs have the same test coverage. For example: internally we don't have tool support for TTCN-3 Procedure Based Communication, therefore we don't have tests checking if signature definitions are visited.
On https://github.com/nokia/vscode-ttcn3/#troubleshooting-go-to-definition-does... you'll find some additional information.
BTS_Tests.ttcn:1889:7: illegal character U+0025 '%'
These are Titan macros. I just added support in ntt v0.6.2. Thanks for pointing out, Harald.
Cheers, Matthias
________________________________________ From: Harald Welte laforge@osmocom.org Sent: Friday, February 19, 2021 12:52 PM To: Simon, Matthias (Nokia - DE/Ulm) Cc: openbsc@lists.osmocom.org Subject: Re: Introducing ntt. Modern tools for TTCN-3
Hi Matthias,
thanks for reaching out.
On Thu, Feb 18, 2021 at 01:25:39PM +0000, Simon, Matthias (Nokia - DE/Ulm) wrote:
Our project is called ntt and it provides various tools for working with TTCN-3 [1]. For example, you can create a tags file:
$ ntt tags ./osmo-ttcn3-hacks/bts >TAGS
I just built it and tried that - looks fine so far.
Or you can list things. To filter cyclic imports, for example:
$ ntt list imports ./osmo-ttcn3-hacks/bts | tsort 1>/dev/null
BTS_Tests.ttcn:1889:7: illegal character U+0025 '%'
I guess we are using several TITAN specific bits an features which may not be supported or intended to support in ntt?
by the way, did you consider posting to the Eclipse TITAN forum? I'm sure folks over there are also interested to hear about new/additional open source TTCN3 tools.
Regards, Harald
-- - Harald Welte laforge@osmocom.org http://laforge.gnumonks.org/ ============================================================================ "Privacy in residential applications is a desirable marketing option." (ETSI EN 300 175-7 Ch. A6)
On Thu, Feb 18, 2021 at 01:25:39PM +0000, Simon, Matthias (Nokia - DE/Ulm) wrote:
$ ntt tags ./osmo-ttcn3-hacks/bts >TAGS
I use universal-ctags (a spin-off from exuberant-ctags) to produce TTCN3 tags. However, it misses many template/function definitions that have keywords like optional, present etc. in them, so half the time my tag jump doesn't work.
But the most interesting piece is probably the TTCN-3 language server: ntt implements the language server protocol. This makes ntt a universal TTCN-3 language plugin for virtually any editor or IDE [2].
I use a ttcn.vim syntax file I found somewhere, the header says: Maintainer: Stefan Karlsson stefan.74@comhem.se It works well.
Never heard of the "language server protocol". All i really need is syntax highlighting and tags. Otherwise I always use vim's ctrl-p and ctrl-n for auto completion (and tags to look up argument ordering).
The vim config example on
looks interesting, what benefits would I get from using ntt in vim?
In your logo, is that a squirrel?
~N
looks interesting, what benefits would I get from using ntt in vim?
Tags files are simple and simple is good. So, you could use just the `ntt tags` command for native TTCN-3 support. This should help you with the templates.
Tags files have one small drawback, though: They lack scope information (local definitions) and TTCN-3 semantics (ambiguous symbols). But if this really justifies a fancy pants language server, depends on how easy the server is to set up and how mature ntt becomes.
So currently you don't get that many benefits. But, I expect the benefits of the TTCN-3 language server will play out in the late game: * when more features will be integrated into ntt. Like automatic formatting, semantically correct renaming, semantic highlighting, code-smell detection, ... * when third party software (ctags, highlight.js, ttcn3.vim, ...) requires updates due to new TTCN-3 language features, like map-types, object oriented extension, ...
In your logo, is that a squirrel?
This is when you ask software engineer to design a logo (https://ahseeit.com//king-include/uploads/2020/12/building-ask-network-engin...) It's based on the Go mascot (https://golang.org), because I like Go and ntt is written in it.
Cheers, Matthias
________________________________________ From: Neels Hofmeyr nhofmeyr@sysmocom.de Sent: Monday, February 22, 2021 11:58 AM To: Simon, Matthias (Nokia - DE/Ulm) Cc: openbsc@lists.osmocom.org Subject: Re: Introducing ntt. Modern tools for TTCN-3
On Thu, Feb 18, 2021 at 01:25:39PM +0000, Simon, Matthias (Nokia - DE/Ulm) wrote:
$ ntt tags ./osmo-ttcn3-hacks/bts >TAGS
I use universal-ctags (a spin-off from exuberant-ctags) to produce TTCN3 tags. However, it misses many template/function definitions that have keywords like optional, present etc. in them, so half the time my tag jump doesn't work.
But the most interesting piece is probably the TTCN-3 language server: ntt implements the language server protocol. This makes ntt a universal TTCN-3 language plugin for virtually any editor or IDE [2].
I use a ttcn.vim syntax file I found somewhere, the header says: Maintainer: Stefan Karlsson stefan.74@comhem.se It works well.
Never heard of the "language server protocol". All i really need is syntax highlighting and tags. Otherwise I always use vim's ctrl-p and ctrl-n for auto completion (and tags to look up argument ordering).
The vim config example on
looks interesting, what benefits would I get from using ntt in vim?
In your logo, is that a squirrel?
~N