create-isotope-app 1.0.3 → 1.1.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/index.js +25 -3
- package/package.json +1 -1
- package/src/templates/configs/extension.js +31 -0
package/index.js
CHANGED
|
@@ -33,6 +33,7 @@ import { readmeMd } from "./src/templates/configs/readme.js";
|
|
|
33
33
|
import {
|
|
34
34
|
extensionPackageJson,
|
|
35
35
|
extensionGrammarJson,
|
|
36
|
+
extensionReadmeMd,
|
|
36
37
|
} from "./src/templates/configs/extension.js";
|
|
37
38
|
|
|
38
39
|
const rl = readline.createInterface({
|
|
@@ -47,16 +48,20 @@ async function init() {
|
|
|
47
48
|
let projectName = process.argv[2];
|
|
48
49
|
let projectIndex = 2;
|
|
49
50
|
|
|
51
|
+
// 'create' サブコマンドの処理をより堅牢に
|
|
50
52
|
if (projectName === "create") {
|
|
51
53
|
projectName = process.argv[3];
|
|
52
54
|
projectIndex = 3;
|
|
53
55
|
}
|
|
54
56
|
|
|
55
|
-
|
|
57
|
+
// プロジェクト名が未指定、またはオプションが先に来てしまった場合の対処
|
|
58
|
+
if (!projectName || projectName.startsWith("-")) {
|
|
56
59
|
projectName = "my-isotope-app";
|
|
57
60
|
}
|
|
58
61
|
|
|
59
|
-
|
|
62
|
+
// 絶対パスとして解決
|
|
63
|
+
const root = path.resolve(process.cwd(), projectName);
|
|
64
|
+
const displayRoot = path.relative(process.cwd(), root) || ".";
|
|
60
65
|
|
|
61
66
|
const args = process.argv.slice(projectIndex + 1);
|
|
62
67
|
let styleChoice = args
|
|
@@ -65,7 +70,7 @@ async function init() {
|
|
|
65
70
|
|
|
66
71
|
console.log(
|
|
67
72
|
chalk.blueBright(
|
|
68
|
-
`\n⚛️ Isotope: Stabilizing new atomic structure at ${root}...\n`,
|
|
73
|
+
`\n⚛️ Isotope: Stabilizing new atomic structure at ${chalk.bold(root)}...\n`,
|
|
69
74
|
),
|
|
70
75
|
);
|
|
71
76
|
|
|
@@ -177,6 +182,10 @@ async function init() {
|
|
|
177
182
|
),
|
|
178
183
|
extensionGrammarJson(),
|
|
179
184
|
);
|
|
185
|
+
fs.writeFileSync(
|
|
186
|
+
path.join(root, ".vscode/extensions/isotope-support-v0.1/README.md"),
|
|
187
|
+
extensionReadmeMd(),
|
|
188
|
+
);
|
|
180
189
|
|
|
181
190
|
// コンポーネント・ページ
|
|
182
191
|
fs.writeFileSync(path.join(root, "src/components/Link.tsx"), linkTsx());
|
|
@@ -225,6 +234,19 @@ async function init() {
|
|
|
225
234
|
try {
|
|
226
235
|
execSync(`npm install`, { cwd: root, stdio: "inherit" });
|
|
227
236
|
console.log(chalk.green(`\n🚀 Ready! cd ${projectName} && npm run dev`));
|
|
237
|
+
|
|
238
|
+
console.log(chalk.cyan(`\n💡 VS Code Integration:`));
|
|
239
|
+
console.log(
|
|
240
|
+
chalk.white(
|
|
241
|
+
` (JP) シンタックスハイライトを有効にするには、以下のコマンドでフォルダを開いてください:`,
|
|
242
|
+
),
|
|
243
|
+
);
|
|
244
|
+
console.log(
|
|
245
|
+
chalk.white(
|
|
246
|
+
` (EN) To enable syntax highlighting, please open the folder directly in VS Code:`,
|
|
247
|
+
),
|
|
248
|
+
);
|
|
249
|
+
console.log(chalk.blueBright(` > cd ${projectName} && code .\n`));
|
|
228
250
|
} catch (err) {
|
|
229
251
|
console.log(chalk.red(`\n❌ Install failed.`));
|
|
230
252
|
}
|
package/package.json
CHANGED
|
@@ -64,3 +64,34 @@ export const extensionGrammarJson = () => {
|
|
|
64
64
|
2,
|
|
65
65
|
);
|
|
66
66
|
};
|
|
67
|
+
|
|
68
|
+
export const extensionReadmeMd = () => {
|
|
69
|
+
return `# Isotope Support for VS Code
|
|
70
|
+
|
|
71
|
+
Isotope framework (.isx) において、\`proton\` タグ内の PHP コードのシンタックスハイライトを提供します。
|
|
72
|
+
|
|
73
|
+
## 特長
|
|
74
|
+
|
|
75
|
+
- **Proton Highlighting**: \`proton\`\\\`...\`\\\` ブロック内を PHP として認識し、色を付けます。
|
|
76
|
+
- **Non-destructive**: 標準の TypeScript React (TSX) の文法に介入(Injection)するため、React 側のハイライトを壊いません。
|
|
77
|
+
|
|
78
|
+
## インストール(手動セットアップ)
|
|
79
|
+
|
|
80
|
+
このディレクトリを VS Code の拡張機能フォルダに配置してください。
|
|
81
|
+
|
|
82
|
+
\`\`\`bash
|
|
83
|
+
cp -r .vscode/extensions/isotope-support-v0.1 ~/.vscode/extensions/
|
|
84
|
+
\`\`\`
|
|
85
|
+
|
|
86
|
+
その後、VS Code を再起動(または \`Developer: Reload Window\`)すると有効になります。
|
|
87
|
+
|
|
88
|
+
## 制限事項
|
|
89
|
+
|
|
90
|
+
- **シンタックスハイライトのみ**: 現在のバージョンは色の表示のみをサポートしています。
|
|
91
|
+
- **Intellisense (Hover/F12)**: テンプレートリテラル内の PHP に対する「定義へ移動」や「ホバー説明」は、標準的な PHP Language Server の制限により機能しません。将来的なアップデートで仮想ドキュメント方式によるサポートを検討しています。
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
Produced by **ATOMS GAMING**
|
|
96
|
+
`;
|
|
97
|
+
};
|