// Copyright (c) 2009 The Chromium Authors. All rights reserved.
//Use of this source code is governed by a BSD-style license that can be
//found in the LICENSE file.
package com.github.sdbg.debug.ui.internal.editors;
//&&&package org.chromium.debug.ui.editors;
/**
* Supplies a hover for JavaScript expressions while on a breakpoint.
*/
public class JsDebugTextHover /*&&&implements ITextHover*/{
//
// private static final JsValueStringifier STRINGIFIER = new JsValueStringifier();
//
// @Override
// public String getHoverInfo(ITextViewer textViewer, IRegion hoverRegion) {
// IDocument doc = textViewer.getDocument();
// String expression = JavascriptUtil.extractSurroundingJsIdentifier(doc, hoverRegion.getOffset());
// if (expression == null) {
// return null;
// }
//
// IAdaptable context = DebugUITools.getDebugContext();
// if (context == null) { // debugger not active
// return null;
// }
//
// EvaluateContext evaluateContext = (EvaluateContext) context.getAdapter(EvaluateContext.class);
// if (evaluateContext == null) {
// return null;
// }
//
// final JsValue[] result = new JsValue[1];
// evaluateContext.getJsEvaluateContext().evaluateSync(
// expression,
// null,
// new JsEvaluateContext.EvaluateCallback() {
// public void failure(Exception cause) {
// }
//
// @Override
// public void success(ResultOrException valueOrException) {
// result[0] = valueOrException.accept(new ResultOrException.Visitor<JsValue>() {
// @Override
// public JsValue visitException(JsValue exception) {
// return null;
// }
//
// @Override
// public JsValue visitResult(JsValue value) {
// return value;
// }
// });
// }
// });
// if (result[0] == null) {
// return null;
// }
//
// return STRINGIFIER.render(result[0]);
// }
//
// @Override
// public IRegion getHoverRegion(ITextViewer textViewer, int offset) {
// IDocument doc = textViewer.getDocument();
// return JavascriptUtil.getSurroundingIdentifierRegion(doc, offset, false);
// }
//
}