私はjsonファイルから読み込んだ特定の語をハイライトで表示するという
プログラムを書いています。
しかし、first_word[0]が「なし」ではない部分の処理で、for文で必要な単語を抽出する際、
なぜかjsonファイル内の回数の部分の「1回」という語だけ抽出出来ていないというバグが起こっています。
原因が分からないので教えていただけると幸いです。
typescript
1'use strict'; 2import * as vscode from 'vscode'; 3import * as fs from 'fs'; 4 5 6export function activate(context: vscode.ExtensionContext) { 7 console.log('Congratulations, your extension "semieditor" is now active!'); 8 const readsemiJson = JSON.parse(fs.readFileSync('C:\Users\specification\src\sample.json','utf8')); 9 10 context.subscriptions.push(vscode.commands.registerCommand('extension.color', () => { 11 vscode.window.showInformationMessage("Color Range Word"); 12 const timeWordList = readsemiJson.時間; 13 const strengthTimeWordList = readsemiJson.強時間; 14 const futurePhraseWordList = readsemiJson.未来句; 15 const quantityWordList = readsemiJson.数量; 16 const numberOfHoursWordList = readsemiJson.時数ノ; 17 const strengthQuantityQualifiedWordList = readsemiJson.強数量修飾; 18 const numberOfTimeWordList = readsemiJson.回数; 19 20 //child -> parent(値域) semiについて 21 function fromObjecttoRange(WordList: any,foundWordList: vscode.DecorationOptions[],dependencyRelationList: vscode.DecorationOptions[],Count: number){ 22 const activeEditor = vscode.window.activeTextEditor; 23 const text = activeEditor.document.getText(); //ドキュメント取得 24 if (WordList.length > 0) { 25 let first_word = WordList[0].split('=>'); 26 if (first_word[0] === 'なし') { 27 let rangewordreg = first_word[1]; 28 for (let i = 1; i < WordList.length; i++){ 29 let word = WordList[i].split('=>'); 30 let rangeword = word[1]; 31 rangewordreg = rangewordreg + "|" + rangeword; 32 } 33 } 34 else{ 35 let rangewordreg = first_word[1]; 36 let parentwordreg = first_word[0]; 37 38 for (let i = 1; i < WordList.length; i++){ 39 console.log(WordList[i]); 40 let word = WordList[i].split('=>'); 41 let parentword = word[0]; 42 let rangeword = word[1]; 43 rangewordreg = rangewordreg + "|" + rangeword; 44 parentwordreg = parentwordreg + "|" + parentword; 45 } 46 console.log(rangewordreg); 47 48 const rangewordString = rangewordreg; 49 const parentString = parentwordreg; 50 const regrangeWord = eval("/(" + rangewordString + ")/g;"); 51 const regparentWord = eval("/(" + parentString + ")/g;"); 52 } 53 } 54 } 55
JSON
1{ 2 "回数": [ 3 "「ドア開ブザー鳴動bit」:1を=>1回" 4 ], 5 "強数量修飾": [], 6 "時数ノ": [ 7 "なし=>「初期入力禁止」期間の", 8 "処置=>5系統の" 9 ], 10 "未来句": [], 11 "数量": [ 12 "庫内ファンON=>5分", 13 "処置=>5", 14 "庫内ファン=>5分間、", 15 "「ドア開ブザー鳴動bit」:1を=>1分", 16 "個別処置1(ドア入力R検知時の処置)を=>1", 17 "庫内ファンON=>30秒", 18 "庫内灯=>0→", 19 "庫内ファン=>30秒間、", 20 "「R室ドア状態:開」を=>3" 21 ], 22 "強時間": [ 23 ], 24 "時間": [ 25 ] 26}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。