Skip to content

SpyglassMC/Spyglass

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

4bba967 · Nov 22, 2024
Jun 30, 2024
May 23, 2024
Nov 22, 2024
Dec 30, 2020
Oct 28, 2024
Nov 22, 2024
May 23, 2024
Jun 24, 2024
Dec 29, 2020
Jul 7, 2024
May 19, 2024
Apr 29, 2023
May 23, 2022
Apr 11, 2022
Feb 24, 2021
Oct 30, 2024
Oct 28, 2022
Jul 15, 2019
Nov 29, 2020
Aug 10, 2020
Jan 2, 2022
Jun 21, 2024
Oct 28, 2024
Oct 28, 2024

Repository files navigation

🚧 Under Heavy Construction 🚧

This project is undergoing a complete rewrite. We're almost there.

For the legacy VS Code extension known as Data-pack Helper Plus, check out

Spyglass

Spyglass aims at improving users' editing experience of Minecraft data packs by providing IntelliSense features like real-time error reporting, auto-completion, semantic coloring, code navigation tools, and refactor utilities.


Sample image is from the legacy version of the project

Documentation

WIP at https://spyglassmc.com.

Contributing

  1.  $ git clone https://github.com/SpyglassMC/Spyglass.git
  2. Install Node.js LTS.
  3.  $ npm i && npm run build

If you're using VS Code to develop Spyglass:

  • Install the recommended ESLint extension. Make a copy of .vscode/settings.template.json and rename it to .vscode/settings.json. Now your VS Code should automatically fix all linting errors every time you save the file.
  • Press F5 to run the VS Code extension in development environment (Launch Client). VS Code will automatically compile all packages and build the extension file in watch mode.

Or if you prefer the command line interface:

  • npm run build to build all packages.
  • npm run watch to watch changes and build all packages.
  • npm run clean to remove all js output. Use this when there seem to be caching issues with TypeScript's compiler.
  • npm test to test all packages.
  • npm run lint to check linting errors.
  • npm run lint:fix to fix all auto-fixable linting errors.
  • npm run commit to run the [gitmoji CLI][gitmoji]. You actually don't have to worry about commit message as long as you're creating PR, as I can always change it.

Please refrain from using mocha --watch, as it might interface with and break the snapshot testing.

You can debug tests with breakpoints by running the Run Unit Tests configuration and setting your breakpoints accordingly. If you want to run a specific subset of tests, add .only after the test block (e.g. describe.only(), it.only()).

Note that the build will fail in CICD if .only tests are pushed to prevent mistakenly merging .only to main (it should only be used for local testing!).

Code style

Tabs for indents, spaces for alignment. Except do not align things because the available tooling is unfortunately terrible.

Test docs locally

  1. Install Jekyll according to its documentation.
  2. Run npm run docs:start to start a local preview at localhost:4000.

Build Pipeline

The build script at the root level does the following steps in series:

  • Run the build script in ./packages/locales.
  • Run the TypeScript compiler across all packages.
  • Then, do the two steps in parallel:
    1. Run the build script in ./packages/playground.
    2. Run the build script in ./packages/vscode-extension.

Module system

The whole Spyglass project, including its source code and output, uses ES module. However, as VS Code cannot consume ES modules as extensions (microsoft/vscode#130367), the vscode-extension package defaults to use CommonJS modules, with file extensions mjs and mts to explicitly override that,

Credits

The original Spyglass logo was provided by BlackNight0315. The current logo is provided by asd988.