Skip to content

v0.18.0

Latest
Compare
Choose a tag to compare
@moosq moosq released this 24 Oct 16:22
· 12 commits to master since this release
d01a609

Welcome to the ntt version 0.18.0 release! This is a substantial update that lays the groundwork for exciting future features. While many of these changes may not be immediately obvious, they are essential for the project's evolution. Here's a summary of what's new:

Improved Hover Information

Analyzing test cases can sometimes be challenging when trying to locate port configuration statements. In this release, we've enhanced the hover feature to display related map and connect calls when you hover over a port, making your workflow more efficient. Additionally, the hover information is now displayed in a format that's best supported by your editor.

Experimental Features

In the spirit of Agile Development, we've begun to introduce "unfinished" features, allowing for early feedback and providing you with a say in the project's direction. These features can be enabled by manually adding the feature toggle to your settings file. Keep in mind that these features are experimental and may undergo significant changes between releases.

Automatic Formatting

Source code formatting is now automated, leveraging the computational speed and consistency of computers. We have kept configuration options minimal, as we are working on establishing an official ETSI TTCN-3 style in collaboration with ETSI TTCN-3 standardization. The current implementation handles indentation, removes trailing whitespaces, and consolidates empty lines. You can adjust tab and space preferences in your editor's configuration.

Feature toggle: ttcn3.experimental.format.enabled

Semantic Highlighting

Building on syntax highlighting, we've introduced semantic highlighting, which highlights words differently based on their context. For instance, component variables are highlighted differently from local variables, which is particularly beneficial for TTCN-3. Please note that this initial implementation may experience delays when working with large files.

Feature toggle: ttcn3.experimental.semanticTokens.enabled

Diagnostics

To enhance your productivity, we've started implementing diagnostics in this release. Currently, we support syntax-error diagnostics, with more useful diagnostic features in the pipeline.

Feature toggle: ttcn3.experimental.diagnostics.enabled

Core

While less visible than IDE support, the ntt core has received substantial attention. We've refactored, addressed technical debt, fixed bugs, and introduced new features. Here's a overview:

  • Added support for XDG Base Directory Specification.
  • Extended the TTCN-3 index with build targets to enhance build-system integration.
  • Aligned with Nokia internal tools (k3 TCI/TM interface and mtcd).
  • Improved the performance of the TTCN-3 scanner, making it three times faster.
  • Enhanced the memory efficiency of the syntax tree.
  • Added a parser generator experiment.
  • Introduced support for non-standard verdicts, including skipped.
  • Passed debug variables through the environment (#686).
  • Added support for testcase configuration files.
  • Removed the k3s backend.
  • Began initial support for Titan descriptor files.
  • Prepared for support of multiple runtimes (Titan, k3r, k3s, and more).
  • Enabled support for gdbserver and k3 runtime processes.
  • Passed K3_TEST_LOG to test hooks.
  • Resolved lint errors on nested select/case statements (#689).
  • Removed the unused T3XF package (#630).

TTCN-3

  • Added support for optional semicolons and trailing commas (#664).
  • Implemented TTCN-3 type inference rules.

Command Line Interfaces

TTCN-3 Source Code Formatter

The ntt format command provides automated formatting for your TTCN-3 source code, following the same rules as the experimental automatic formatting feature mentioned earlier. Please note that these rules are not yet stable and might disrupt your development cycle.

Test Anything Protocol (TAP)

You can now enable TAP-formatted output when running tests with ntt. This makes integration with other TAP consumers more straightforward.

Describing K3 Log-Events

A new command, describe-events, offers detailed descriptions for K3 log events in various formats, including colored, human-readable output, JSON for integration, and The Logfile Navigator format.

Generating ntt Documentation

The ntt docs command generates markdown descriptions for all ntt commands and options, indirectly contributing to keeping the online documentation up-to-date.

Runtime Environment

We've added several new built-in functions to the runtime environment, including int2bin (#621), int2char (#622), int2enum, int2str (#634), str2float (#681), str2int (#680), unichar2int, and int2unichar (#626).

Bugfixes

We've addressed some key issues in this release, including fixing unexpected characters in hover and resolving a malformed struct tag (#649).

Gratitudes

We extend our heartfelt thanks to the following contributors for their valuable support in making this release possible:

Of course, we also appreciate all the users who reported issues and helped us improve ntt.