termunicode 0.1.0 copy "termunicode: ^0.1.0" to clipboard
termunicode: ^0.1.0 copied to clipboard

Unicode library to get character properties (width, emoji, printable, etc)

term_unicode #

Dart library designed to provide a set of utilities for working with Unicode characters in terminal applications. It is particularly useful for applications that need to handle a wide range of Unicode characters and properties.

This library is part of the termKit project.

Main Features #

Character Width Determination #

One of the main features of term_unicode is the ability to determine the width of a character or string. This takes into account different properties or contexts, which can be crucial for correctly displaying text in a terminal application.

Emoji Support #

The library includes support to check if a character is an emoji, which can be useful for handling emoji characters in user input or text processing.

Printable Characters #

term_unicode can also determine if a character is printable, which can be useful for handling user input or displaying text.

Non-Character and Private-Use Characters #

The library can also determine if a character is a non-character or private-use

Usage #

To use term_unicode, simply import the library into your Dart application:

import 'package:term_unicode/term_unicode.dart';

void main() {
  print(widthString('a')); // 1
  print(widthString('👩')); // 2
  print(widthString('hello')); // 10
}

IMPORTANT: This packages export two libraries, term_unicode.dart and term_ucd.dart.

term_unicode.dart is the main library and contains the main features of the package. Nothing more is needed if only want to use the utilities to inspect Unicode characters.

term_ucd.dart contains the Unicode Character Database (UCD) parser and some other parsers used to create the tables that term_unicode needs to work.

Re-generate the tables #

To regenerate the tables used by term_unicode, you can run the following command from the root directory:

dart run generator.dart

this will create a data directory, where some UCD files will be downloaded and will overwrite the file lib/src/tables.dart.

How it works #

term_unicode implements a 3 stage table lookup. Is more or less the same idea that other libraries use. The difference with this, is that term_unicode not only stores the character width, but also some other properties that can be useful for terminal applications. This makes that the stage2 table is bigger, but the lookup is super fast.

For a more detailed explanation of the process on how the 3 stage table works, you can check this link: Fast Lookup of Unicode Properties

This project is based on work from other projects, like:

Contributing #

Contributions to term_unicode are welcome. Please submit a pull request or create an issue to discuss any changes you wish to make.

License #

term_unicode is licensed under the MIT License.

0
likes
150
pub points
0%
popularity

Publisher

verified publishernetflux.com.ar

Unicode library to get character properties (width, emoji, printable, etc)

Homepage
Repository (GitHub)
View/report issues

Topics

#unicode #ucd

Documentation

Documentation
API reference

License

MIT (LICENSE)

More

Packages that depend on termunicode