Flourite - Language detector
A fork of ts95/lang-detector, rewritten in Typescript with more language support.
Detects a programming language from a given string.
- Built-in support for CommonJS and ESM format
- Built-in Typescript typings
- No external dependencies
- 150 test cases and growing!
Detectable languages
Languages | | | |
---|
C | HTML | Lua | Rust |
C++ | Java | Pascal | SQL |
C# | Javascript | PHP | YAML |
CSS | Julia | Python | |
Go | Kotlin | Ruby | |
Install
$ npm install flourite
or via a CDN (unpkg or jsdelivr)
<script src="https://unpkg.com/flourite@1.1.2"></script>
<script src="https://cdn.jsdelivr.net/npm/flourite@1.1.2/dist/index.iife.js"></script>
Usage
import flourite from 'flourite';
const code = flourite('console.log("Hello World");');
You could supply options to make see numbers of points for a certain language:
import flourite from 'flourite';
const code = flourite('printf("Hello World")', { statistics: true });
Or if you want to integrate it with Shiki, you could pass:
const code = flourite('Console.WriteLine("Hello world!");', { shiki: true });
If you want to handle Unknown
value, you could pass:
const code = flourite("SELECT 'Hello world!' text FROM dual;", { noUnknown: true });
With Typescript
import flourite from 'flourite';
import type { Options, StatisticOutput } from 'flourite';
const flouriteOptions: Options = {
heuristic: true,
statistics: true,
};
const code = flourite('print!({:?}, &v);', flouriteOptions) as StatisticOutput;
Available Options
Key | Type | Default | Description |
---|
heuristic | boolean | true | Checks for codes on the top of the given input. Only checks when the lines of code is above 500. |
statistics | boolean | false | If true , will return the statistics of all the guessed language. |
shiki | boolean | false | Straightforward compatibility with Shiki's language specification type |
noUnknown | boolean | false | If true , will not output Unknown on detected and statistics result |
I'm here for Hacktoberfest, what can I do?
If you're new to open source, we really recommend reading a few articles about contributing to open source projects:
Then you can start by reading our contribution part and guidelines.
Have fun!
Contributing
- Use the Node.js version as defined on the
.nvmrc
file. - Run
npm run test:tdd
to initiate a test driven development environment. - Run
npm run lint
and npm run format
before commit a change.
For more details and explanation on how things work, see CONTRIBUTING
License
MIT