diff options
| author | syuilo <syuilotan@yahoo.co.jp> | 2017-02-09 22:09:44 +0900 |
|---|---|---|
| committer | syuilo <syuilotan@yahoo.co.jp> | 2017-02-09 22:09:44 +0900 |
| commit | 351f306cd9dd7a0c1320ec29c0f4de05bb2f1bd3 (patch) | |
| tree | 82dc858925a230111136995d3297382c61c594bd /src/common | |
| parent | Fix bug (diff) | |
| download | sharkey-351f306cd9dd7a0c1320ec29c0f4de05bb2f1bd3.tar.gz sharkey-351f306cd9dd7a0c1320ec29c0f4de05bb2f1bd3.tar.bz2 sharkey-351f306cd9dd7a0c1320ec29c0f4de05bb2f1bd3.zip | |
#140
Diffstat (limited to 'src/common')
| -rw-r--r-- | src/common/text/elements/code.js | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/src/common/text/elements/code.js b/src/common/text/elements/code.js index 4a3ba92530..958bbe8d87 100644 --- a/src/common/text/elements/code.js +++ b/src/common/text/elements/code.js @@ -173,11 +173,13 @@ const elements = [ const match = varDef.filter(v => code.substr(0, v.length + 1) == v + ' ')[0]; if (match) { - const bar = code.substr(match.length + 1).match(/^[a-zA-Z0-9_-]+/); - if (bar) { - if (!keywords.some(k => k == bar)) { - vars.push(bar[0]); - } + const bars = code.substr(match.length + 1).match(/^[a-zA-Z0-9_\-,\s]+/); + if (bars) { + bars[0].replace(/,/g, ' ').split(' ').filter(x => x != '').forEach(bar => { + if (!keywords.some(k => k == bar)) { + vars.push(bar); + } + }); } } @@ -187,7 +189,9 @@ const elements = [ // vars (code, i, source, vars) => { const prev = source[i - 1]; - if (prev && /[a-zA-Z]/.test(prev)) return null; + // プロパティは変数と認識させないために、 + // 前に . や > (PHPなどではプロパティに -> でアクセスするため) が無いかチェック + if (prev && /[a-zA-Z\.>]/.test(prev)) return null; const match = vars.sort((a, b) => b.length - a.length) .filter(v => code.substr(0, v.length) == v)[0]; |