From 8be16b1fa0ff4abdc09553c7097f23141b641dfe Mon Sep 17 00:00:00 2001 From: yann300 Date: Mon, 25 Sep 2017 18:50:31 +0200 Subject: [PATCH] highlight entire line if contains children --- assets/css/browser-solidity.css | 14 -------------- src/app.js | 16 ++++++++++++++-- src/app/editor/contextualListener.js | 15 ++++++++------- 3 files changed, 22 insertions(+), 23 deletions(-) diff --git a/assets/css/browser-solidity.css b/assets/css/browser-solidity.css index 4b9b9bf57d..d3fc4edd20 100644 --- a/assets/css/browser-solidity.css +++ b/assets/css/browser-solidity.css @@ -297,20 +297,6 @@ input[type="file"] { opacity: 0.7 } -.highlightdeclaration{ - position:absolute; - z-index:20; - background-color: lightgrey; - opacity: 0.4 -} - -.highlightcurrent { - position:absolute; - z-index:20; - background-color: lightgrey; - opacity: 0.4 -} - .highlightcode { position:absolute; z-index:20; diff --git a/src/app.js b/src/app.js index 0ad38d1925..e4791e4501 100644 --- a/src/app.js +++ b/src/app.js @@ -394,10 +394,22 @@ function run () { getCompilationResult: () => { return compiler.lastCompilationResult }, - highlight: (position, node, type) => { + highlight: (position, node) => { if (compiler.lastCompilationResult && compiler.lastCompilationResult.source && compiler.lastCompilationResult.source.target === config.get('currentFile')) { position = offsetToLineColumnConverter.offsetToLineColumn(position, position.file, compiler.lastCompilationResult) - return editor.addMarker(position, config.get('currentFile'), 'highlight' + type) + if (node.children && node.children.length) { + position = { + start: { + line: position.start.line, + column: 0 + }, + end: { + line: position.start.line + 1, + column: 0 + } + } + } + return editor.addMarker(position, config.get('currentFile'), 'highlightreference') } return null }, diff --git a/src/app/editor/contextualListener.js b/src/app/editor/contextualListener.js index 797085c4ba..48d23f98d0 100644 --- a/src/app/editor/contextualListener.js +++ b/src/app/editor/contextualListener.js @@ -62,9 +62,10 @@ class ContextualListener { } } - _highlight (node, compilationResult, type) { - var position = this.sourceMappingDecoder.decode(node.src) - var eventId = this._api.highlight(position, node, type) + _highlight (node, compilationResult) { + var src = node.src + var position = this.sourceMappingDecoder.decode(src) + var eventId = this._api.highlight(position, node) if (eventId) { this._events.push({ eventId, position, fileTarget: compilationResult.source.target }) } @@ -77,16 +78,16 @@ class ContextualListener { var calls = self._index['Declarations'][id] for (var call in calls) { var node = calls[call] - self._highlight(node, compilationResult, 'reference') + self._highlight(node, compilationResult) } } } if (node.attributes && node.attributes.referencedDeclaration) { highlights(node.attributes.referencedDeclaration) var current = this._index['FlatReferences'][node.attributes.referencedDeclaration] - this._highlight(current, compilationResult, 'declaration') - } else { - highlights(node.id, 'current') + this._highlight(current, compilationResult) + } else if (node && node.name && node.name !== 'FunctionDefinition' && node.name !== 'ContractDefinition' && node.name !== 'Block') { + highlights(node.id) } }