Initial commit
This commit is contained in:
commit
9106dc6a52
2 changed files with 28 additions and 0 deletions
21
index.ts
Normal file
21
index.ts
Normal file
|
|
@ -0,0 +1,21 @@
|
||||||
|
import type { Plugin, Parser } from "prettier";
|
||||||
|
import { formatSource, type FormatLanguage } from "muddle/formatter";
|
||||||
|
|
||||||
|
interface Document { formatted: string }
|
||||||
|
const parser = (language: FormatLanguage): Parser<Document> => ({
|
||||||
|
astFormat: "muddle-document",
|
||||||
|
async parse(source, options) { return { formatted: await formatSource(source, language, options) }; },
|
||||||
|
locStart: () => 0,
|
||||||
|
locEnd: (node) => node.formatted.length,
|
||||||
|
});
|
||||||
|
|
||||||
|
const plugin: Plugin<Document> = {
|
||||||
|
languages: [
|
||||||
|
{ name: "SPUG", parsers: ["spug"], extensions: [".spug", ".stpug", ".stug"], vscodeLanguageIds: ["spug"] },
|
||||||
|
{ name: "STCSS", parsers: ["stcss"], extensions: [".stcss"], vscodeLanguageIds: ["stcss"] },
|
||||||
|
],
|
||||||
|
parsers: { spug: parser("spug"), stcss: parser("stcss") },
|
||||||
|
printers: { "muddle-document": { print: (path) => path.node.formatted } },
|
||||||
|
};
|
||||||
|
export default plugin;
|
||||||
|
export const { languages, parsers, printers } = plugin;
|
||||||
7
package.json
Normal file
7
package.json
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"name": "@muddle/prettier-plugin",
|
||||||
|
"version": "0.1.0",
|
||||||
|
"type": "module",
|
||||||
|
"exports": "./index.ts",
|
||||||
|
"peerDependencies": { "muddle": "*", "prettier": "^3.0.0" }
|
||||||
|
}
|
||||||
Loading…
Reference in a new issue