@ataraxy-labs/sem 0.8.0 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +26 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -6,6 +6,10 @@
|
|
|
6
6
|
<img src="assets/banner.svg" alt="sem" width="600" />
|
|
7
7
|
</p>
|
|
8
8
|
|
|
9
|
+
<p align="center">
|
|
10
|
+
<a href="https://trendshift.io/repositories/25348" target="_blank"><img src="https://trendshift.io/api/badge/repositories/25348" alt="Ataraxy-Labs%2Fsem | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a>
|
|
11
|
+
</p>
|
|
12
|
+
|
|
9
13
|
<p align="center">
|
|
10
14
|
<strong>Semantic version control built on Git.</strong><br>
|
|
11
15
|
Instead of lines changed, sem tells you what entities changed: functions, methods, classes.
|
|
@@ -24,7 +28,7 @@
|
|
|
24
28
|
<img src="https://img.shields.io/badge/rust-stable-orange" alt="Rust">
|
|
25
29
|
<img src="https://img.shields.io/badge/tests-133_passing-brightgreen" alt="Tests">
|
|
26
30
|
<a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-yellow" alt="License"></a>
|
|
27
|
-
<img src="https://img.shields.io/badge/languages-
|
|
31
|
+
<img src="https://img.shields.io/badge/languages-31-blue" alt="Languages">
|
|
28
32
|
</p>
|
|
29
33
|
|
|
30
34
|
sem is a semantic version control tool that works on top of Git. It parses your code with tree-sitter, extracts every function, class, and method as an entity, and diffs at the entity level instead of lines. This means you see "function `blahh` was modified" instead of "lines x-y changed."
|
|
@@ -37,6 +41,12 @@ It works in any Git repo with no setup.
|
|
|
37
41
|
|
|
38
42
|
## Install
|
|
39
43
|
|
|
44
|
+
```bash
|
|
45
|
+
curl -fsSL https://raw.githubusercontent.com/Ataraxy-Labs/sem/main/install.sh | sh
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Or via Homebrew:
|
|
49
|
+
|
|
40
50
|
```bash
|
|
41
51
|
brew install sem-cli
|
|
42
52
|
```
|
|
@@ -244,7 +254,7 @@ sem unsetup
|
|
|
244
254
|
|
|
245
255
|
## What it parses
|
|
246
256
|
|
|
247
|
-
|
|
257
|
+
31 programming languages with full entity extraction via tree-sitter:
|
|
248
258
|
|
|
249
259
|
| Language | Extensions | Entities |
|
|
250
260
|
|----------|-----------|----------|
|
|
@@ -275,6 +285,9 @@ sem unsetup
|
|
|
275
285
|
| Scala | `.scala` `.sc` `.sbt` | classes, objects, traits, enums, functions, vals, extensions |
|
|
276
286
|
| Nix | `.nix` | bindings, inherit declarations |
|
|
277
287
|
| Haskell | `.hs` | functions, signatures, data types, newtypes, classes, instances, type synonyms |
|
|
288
|
+
| Elm | `.elm` | value declarations, type aliases, type declarations, port annotations, infix declarations |
|
|
289
|
+
| Clojure | `.clj` `.cljs` `.cljc` | vars, functions, macros, multimethods, protocols, records, types |
|
|
290
|
+
| D | `.d` `.di` | modules, functions, classes, structs, interfaces, unions, enums, templates, aliases, unittests |
|
|
278
291
|
| Zig | `.zig` | functions, tests, variables |
|
|
279
292
|
|
|
280
293
|
Plus structured data formats:
|
|
@@ -284,6 +297,7 @@ Plus structured data formats:
|
|
|
284
297
|
| JSON | `.json` | properties, objects (RFC 6901 paths) |
|
|
285
298
|
| YAML | `.yml` `.yaml` | sections, properties (dot paths) |
|
|
286
299
|
| TOML | `.toml` | sections, properties |
|
|
300
|
+
| EDN | `.edn` | top-level map entries (keyword keys) |
|
|
287
301
|
| CSV | `.csv` `.tsv` | rows (first column as identity) |
|
|
288
302
|
| Markdown | `.md` `.mdx` | heading-based sections |
|
|
289
303
|
|
|
@@ -392,6 +406,16 @@ Used by [weave](https://github.com/Ataraxy-Labs/weave) (semantic merge driver) a
|
|
|
392
406
|
- **xxhash** for structural hashing
|
|
393
407
|
- Plugin system for adding new languages and formats
|
|
394
408
|
|
|
409
|
+
## Telemetry
|
|
410
|
+
|
|
411
|
+
sem collects anonymous usage data: the command name (e.g. `diff`, `impact`), CLI version, and operating system. Nothing else — no code, file paths, repo names, or user identity. Events are batched locally and sent in the background, so commands never wait on the network.
|
|
412
|
+
|
|
413
|
+
Disable it any time:
|
|
414
|
+
|
|
415
|
+
```bash
|
|
416
|
+
export SEM_NO_TELEMETRY=1 # or DO_NOT_TRACK=1
|
|
417
|
+
```
|
|
418
|
+
|
|
395
419
|
## Contributing
|
|
396
420
|
|
|
397
421
|
Want to add a new language? See [CONTRIBUTING.md](CONTRIBUTING.md) for a step-by-step guide.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ataraxy-labs/sem",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.10.0",
|
|
4
4
|
"description": "npm wrapper for the sem CLI. Downloads the matching release binary and exposes the sem command in node_modules/.bin.",
|
|
5
5
|
"license": "MIT OR Apache-2.0",
|
|
6
6
|
"type": "module",
|