github Ataraxy-Labs/sem v0.5.0

5 hours ago

What's New

Zero-config language detection for extensionless files

sem now detects 19 languages from file content alone, no extension needed. It scans the first ~20 lines for high-confidence markers (imports, declarations, opening tags). Shebang lines and vim modelines also work.

.semrc custom extension mappings

Drop a .semrc in your project root to map any extension to a supported language:

.xyz = cpp
.j = json
.mypy = python

.gitattributes support

sem reads your existing diff= and linguist-language= patterns automatically. No extra config needed.

Intra-file move detection

When a method moves between classes or impl blocks within the same file, sem now reports it as a move instead of a delete + add.

Parent name context in output

Entity changes now show parent context: Calculator::add instead of just add. Thanks @nminev (#97)

Precise parent suppression

When a container's own declaration changes alongside its children, both are now reported correctly. Thanks @nminev (#98)

Path-based sem entities

sem entities now accepts file/directory paths, skipping invalid files gracefully. Thanks @Celsiusss (#102)

Other

  • PHP .inc/.phtml/.module extension support
  • Depth-limited impact analysis with fallback warning
  • #[non_exhaustive] on SemanticChange for safer downstream use

Contributors

@nminev, @Celsiusss, @SebastianJL, @scottchiefbaker

Don't miss a new sem release

NewReleases is sending notifications on new releases.