Skip to content

Commit

Permalink
プラグインバージョン管理でmeta情報が全くない場合にエラーが出ない問題がある。 #1647
Browse files Browse the repository at this point in the history
  • Loading branch information
kujirahand committed May 3, 2024
1 parent d7dde14 commit 40a15fc
Show file tree
Hide file tree
Showing 7 changed files with 145 additions and 56 deletions.
2 changes: 1 addition & 1 deletion core
1 change: 0 additions & 1 deletion editor/edit_main.jsx
Expand Up @@ -151,7 +151,6 @@ const Editor = (params) => {
setUsedFuncs(getNako3().usedFuncs)
window.addEventListener('message', (e) => {
if (e.data.action === 'debug.line') {
console.log('@e.data=', e.data)
const line = e.data.line
const m = line.match(/^l(\d+):/)
if (m && activeEditor) {
Expand Down
4 changes: 2 additions & 2 deletions src/nako_version.mts
Expand Up @@ -11,9 +11,9 @@ export interface NakoVersion {
}
// 実際のバージョン定義 (自動生成されるので以下を編集しない)
const nakoVersion: NakoVersion = {
version: '3.6.1',
version: '3.6.2',
major: 3,
minor: 6,
patch: 1
patch: 2
}
export default nakoVersion
113 changes: 62 additions & 51 deletions src/plugin_keigo.mjs
@@ -1,55 +1,66 @@
// @ts-nocheck
// 敬語を使いたい人のためのプラグイン (お遊び機能)

const PluginKeigo = {
'初期化': {
type: 'func',
josi: [],
pure: true,
fn: function (sys) {
}
},
// @丁寧語
'お世話': { type: 'const', value: 1 }, // @おせわ
'な': { // @Aになる // @なる
type: 'func',
josi: [['に', 'へ']],
pure: true,
fn: function (a, sys) {
return a
}
},
'おります': { // @ソースコードを読む人を気持ちよくする // @おります
type: 'func',
josi: [],
pure: true,
fn: function (sys) {
if (!sys.__reisetu) { sys.__reisetu = 0 }
sys.__reisetu++
'meta': {
type: 'const',
value: {
pluginName: 'plugin_keigo', // プラグインの名前
description: '敬語でプログラムを記述するための命令を提供するプラグイン', // プラグインの説明
pluginVersion: '3.6.0', // プラグインのバージョン
nakoRuntime: ['wnako', 'cnako'], // 対象ランタイム
nakoVersion: '3.6.0' // 要求なでしこバージョン
}
},
'初期化': {
type: 'func',
josi: [],
pure: true,
fn: function (sys) {
}
},
return_none: true
},
'どうぞ': { // @ソースコードを読む人を気持ちよくする // @どうぞ
type: 'func',
josi: [],
pure: true,
fn: function (sys) {
if (!sys.__reisetu) { sys.__reisetu = 0 }
sys.__reisetu++
// @丁寧語
'お世話': { type: 'const', value: 1 }, // @おせわ
'な': {
type: 'func',
josi: [['に', 'へ']],
pure: true,
fn: function (a, sys) {
return a;
}
},
return_none: true
},
'よろしくお願': { // @ソースコードを読む人を気持ちよくする // @よろしくおねがいします
type: 'func',
josi: [],
pure: true,
fn: function (sys) {
if (!sys.__reisetu) { sys.__reisetu = 0 }
sys.__reisetu++
'おります': {
type: 'func',
josi: [],
pure: true,
fn: function (sys) {
if (!sys.__reisetu) {
sys.__reisetu = 0;
}
sys.__reisetu++;
},
return_none: true
},
return_none: true
}

}

export default PluginKeigo
'どうぞ': {
type: 'func',
josi: [],
pure: true,
fn: function (sys) {
if (!sys.__reisetu) {
sys.__reisetu = 0;
}
sys.__reisetu++;
},
return_none: true
},
'よろしくお願': {
type: 'func',
josi: [],
pure: true,
fn: function (sys) {
if (!sys.__reisetu) {
sys.__reisetu = 0;
}
sys.__reisetu++;
},
return_none: true
}
};
export default PluginKeigo;
65 changes: 65 additions & 0 deletions src/plugin_keigo.mts
@@ -0,0 +1,65 @@
// 敬語を使いたい人のためのプラグイン (お遊び機能)
import { NakoSystem } from '../core/src/plugin_api.mjs'

const PluginKeigo = {
'meta': {
type: 'const',
value: {
pluginName: 'plugin_keigo', // プラグインの名前
description: '敬語でプログラムを記述するための命令を提供するプラグイン', // プラグインの説明
pluginVersion: '3.6.0', // プラグインのバージョン
nakoRuntime: ['wnako', 'cnako'], // 対象ランタイム
nakoVersion: '3.6.0' // 要求なでしこバージョン
}
},
'初期化': {
type: 'func',
josi: [],
pure: true,
fn: function (sys: NakoSystem) {
}
},
// @丁寧語
'お世話': { type: 'const', value: 1 }, // @おせわ
'な': { // @Aになる // @なる
type: 'func',
josi: [['に', 'へ']],
pure: true,
fn: function (a: any, sys: NakoSystem) {
return a
}
},
'おります': { // @ソースコードを読む人を気持ちよくする // @おります
type: 'func',
josi: [],
pure: true,
fn: function (sys: NakoSystem) {
if (!sys.__reisetu) { sys.__reisetu = 0 }
sys.__reisetu++
},
return_none: true
},
'どうぞ': { // @ソースコードを読む人を気持ちよくする // @どうぞ
type: 'func',
josi: [],
pure: true,
fn: function (sys: NakoSystem) {
if (!sys.__reisetu) { sys.__reisetu = 0 }
sys.__reisetu++
},
return_none: true
},
'よろしくお願': { // @ソースコードを読む人を気持ちよくする // @よろしくおねがいします
type: 'func',
josi: [],
pure: true,
fn: function (sys: NakoSystem) {
if (!sys.__reisetu) { sys.__reisetu = 0 }
sys.__reisetu++
},
return_none: true
}

}

export default PluginKeigo
10 changes: 10 additions & 0 deletions src/plugin_markup.mjs
Expand Up @@ -8,6 +8,16 @@ import { parse as parseMD } from 'marked'
import html from 'html'

const PluginMarkup = {
'meta': {
type: 'const',
value: {
pluginName: 'plugin_markup', // プラグインの名前
description: 'HTML整形やマークダウン変換などの命令を提供するプラグイン', // プラグインの説明
pluginVersion: '3.6.0', // プラグインのバージョン
nakoRuntime: ['wnako', 'cnako'], // 対象ランタイム
nakoVersion: '3.6.0' // 要求なでしこバージョン
}
},
// @マークアップ
'マークダウンHTML変換': { // @マークダウン形式で記述された文字列SをHTML形式に変換する // @まーくだうんHTMLへんかん
type: 'func',
Expand Down
6 changes: 5 additions & 1 deletion test/node/wnako3_editor_test.mjs
Expand Up @@ -159,7 +159,11 @@ describe('wnako3_editor_test', () => {
describe('ドキュメントのホバー', () => {
it('プラグイン関数の助詞のドキュメントを表示する', () => {
const nako3 = new NakoCompiler()
nako3.addPluginObject('PluginEditorTest', {
nako3.addPlugin({
'meta': {
type: 'const',
value: { pluginName: 'PluginEditorTest', nakoVersion: '3.6.3' }
},
'プラグイン関数テスト': {
type: 'func',
josi: [['を', 'と'], ['に', 'は']],
Expand Down

0 comments on commit 40a15fc

Please sign in to comment.