Skip to content
gtrefPublic

Latest commit

 

History

288 Commits

Folders and files

Repository files navigation

Slack Ask DeepWiki Satiscode | AlternativeTo Please checkout NEWS.md for recent updates. This file is updated daily.

Satiscode

Repography logo / Recent activity Time period

Timeline graph Issue status graph Pull request status graph Trending topics Top contributors

Satiscode is a lightweight Windows editor for C/C++, Python, JSON, XML, web languages, and Markdown, built with Electron and Monaco Editor.

For installation and a walkthrough of the editor, see the Satiscode usage guide.

Features

  • C and C++ language detection by file extension
  • Python language detection by file extension
  • Web language detection for HTML, CSS/SCSS, JavaScript/JSX, TypeScript/TSX, and JSON
  • clangd diagnostics, completion, hover, and go-to-definition
  • Pyright diagnostics, completion, hover, and go-to-definition for Python
  • FIXSON diagnostics, completion, and hover for JSON
  • FIXML diagnostics, element completion, and hover for XML
  • Markdown preview and edit modes
  • Git status, staging, commits, pull, push, and blame
  • VS Code-style Problems panel with clickable diagnostics
  • Resizable Explorer file tree for the current directory
  • New, Open, Save, Save As, and graceful Exit operations
  • English and Spanish interface labels
  • Keyboard shortcuts for common file operations
  • Windows NSIS installer support

Requirements

  • Windows 10 or newer
  • Node.js 20 or newer

The editor remains usable when Python is unavailable, but Python language services will not function correctly.

Note

Please NOTE That from satiscode 1.2.0 onwards LLVM does not need to be installed. All new builds will contain clangd and its librarys and later there will be instructions for local testing.

Note

Please note that version 1.5.0 onwards will need python to be installed to use python linting.

Development

npm install
npm run build
npm start

Warning

A clean source checkout runs without clangd or Pyright because their server files are absent; the editor can still open and edit supported file types. Source mode looks for clangd in bin/ and Pyright in PythonLSP/ at the repository root. npm run build installs and compiles FIXSON and FIXML from their package directories; packaged builds include both bundles in the application resources.

Opening a .c, .cc, .cpp, .cxx, .h, .hh, .hpp, or .hxx file starts clangd only when its server files are available. Opening a .py file starts Pyright only when its server files are available. Opening a .json file starts FIXSON; .jsonc files retain Monaco's built-in support without strict JSON validation. XML documents (.xml, .xsd, .xsl, .xslt, .svg, and .plist) start FIXML. HTML, CSS/SCSS, JavaScript/JSX, and TypeScript/TSX use Monaco's built-in language support. Markdown files (.md and .markdown) open in preview mode and can be switched to source editing.

Keyboard shortcuts

  • Ctrl+N: New file
  • Ctrl+O: Open file
  • Ctrl+K: Open folder
  • Ctrl+S: Save
  • Ctrl+Shift+S: Save As
  • Ctrl+F: Find
  • Ctrl+.: Toggle Problems panel

Build the Windows installer

npm run dist:win

The installer is written to dist\Satiscode Setup 1.0.0.exe. The installer is unsigned unless signing credentials are configured.

Project layout

  • main.js: Electron main process, filesystem APIs, clangd process bridge, and shutdown handling
  • preload.js: isolated renderer IPC API
  • index.html: Monaco editor UI, Explorer, Problems panel, and language-service client
  • packages/FIXSON-LSP: JSON language server sources and build configuration
  • packages/FIXML-LSP: XML language server sources and build configuration
  • icons.js: Loads the icon packs located in icons/
  • themes.js: Loads theme files from the themes/ directory

CI/CD Architecture

SatisCode maintains automated quality, security, and build validation pipelines using GitHub Actions:

Workflows

Workflow File Triggers Description
CI .github/workflows/ci.yml push: [main], pull_request: [main] Runs linting, TypeScript compiler checks, OS-matrix test suites, and production asset verification.
CodeQL .github/workflows/codeql.yml push: [main], pull_request: [main], weekly schedule GitHub Advanced Security CodeQL static analysis for JavaScript & TypeScript.
Gitleaks .github/workflows/gitleaks.yml push: [main], pull_request: [main] Fast secret and credential scanning across commits and pull request diffs.
Dependency Health .github/workflows/dependency-health.yml push: [main], pull_request: [main], weekly schedule Scans for undeclared missing dependencies and audits unused packages via depcheck.
Dependabot .github/dependabot.yml Weekly schedule Automated weekly dependency updates for GitHub Actions and all package manifests (/, packages/FIXSON-LSP, packages/FIXML-LSP).

CI Jobs & Matrix Strategy

  • lint: Runs ESLint across all repository code on ubuntu-latest.
  • typecheck: Runs tsc --noEmit across TypeScript packages (FIXSON-LSP, FIXML-LSP) to fail on any type error.
  • test: Runs project unit and integration tests under Node.js 20 on an operating system matrix (windows-latest and ubuntu-latest).
  • build: Compiles LSP server bundles, synchronizes Web IDE assets, and verifies all production bundles exist and compile properly across the OS matrix (windows-latest and ubuntu-latest).

Performance & Caching

  • Dependency Caching: Workflows use actions/setup-node@v4 with cache keying on both the root package-lock.json and subpackage packages/*/package-lock.json.
  • Concurrency Cancellation: Workflows define concurrency groups that cancel obsolete in-flight runs on pull request branches (cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}), while allowing pushes to main to run to completion.

Local Quality Commands

# Run linting
npm run lint

# Run TypeScript compilation check
npm run typecheck

# Run test suite
npm test

# Run build and verify distribution assets
npm run build
npm run verify-assets

# Run dependency health audit
npm run depcheck

Recommended Branch Protection Rules

To protect the main branch, configure the following required status checks in repository settings:

  • lint
  • typecheck
  • test (ubuntu-latest)
  • test (windows-latest)
  • build (ubuntu-latest)
  • build (windows-latest)
  • CodeQL
  • Gitleaks

Security notes

The renderer uses context isolation and does not have direct Node.js access. Filesystem and process operations are exposed through the preload bridge. Do not add unrestricted filesystem or shell APIs to the renderer.

License

Satiscode is licensed under the MIT License.

Contributors

Thanks to these awesome people for helping build satiscode:

🤝 Contributors


@gtref

@ncs22

@Igcabr01

@ashveet

@coderabbitai

@dependabot
Project Lead Contributor Contributor Contributor Code Review Bot Security Bot

Copy atributions

This tool uses librarys and executables from the clangd util by LLVM, PyRight by microsoft. to see the copy atributions please click here

Packages

See the repository's packages/ directory for packages included with Satiscode. These packages are also published on npmjs.

Name Readme link
FIXSON FIXSON-LSP JSON LSP
FIXML FIXML-LSP XML LSP

Releases

Packages

Used by

Contributors

Languages