From: George Karpenkov Date: Wed, 17 Jan 2018 20:06:26 +0000 (+0000) Subject: [analyzer] Better UI in html reports for displaying shortcuts help X-Git-Tag: llvmorg-7.0.0-rc1~15033 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=6d83f34afdb0833ae5d7173daf0f8e009e95afa0;p=platform%2Fupstream%2Fllvm.git [analyzer] Better UI in html reports for displaying shortcuts help Make the help window accessible, but don't show by default. Use a different CSS class from macro. llvm-svn: 322750 --- diff --git a/clang/lib/Rewrite/HTMLRewrite.cpp b/clang/lib/Rewrite/HTMLRewrite.cpp index d324784..349b088 100644 --- a/clang/lib/Rewrite/HTMLRewrite.cpp +++ b/clang/lib/Rewrite/HTMLRewrite.cpp @@ -311,6 +311,10 @@ void html::AddHeaderFooterInternalBuiltinCSS(Rewriter &R, FileID FID, " -webkit-border-radius:5px; -webkit-box-shadow:1px 1px 7px #000; " " border-radius:5px; box-shadow:1px 1px 7px #000; " "position: absolute; top: -1em; left:10em; z-index: 1 } \n" + " #tooltiphint { position: fixed; width: 50em; margin-left: -25em;" + "left: 50%; padding: 10px; border: 1px solid #b0b0b0;" + "border-radius: 2px; box-shadow: 1px 1px 7px black; " + "background-color: #c0c0c0; z-index: 2; }\n" " .macro { color: darkmagenta; background-color:LemonChiffon;" // Macros are position: relative to provide base for expansions. " position: relative }\n" diff --git a/clang/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp b/clang/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp index 6356251..acddcef 100644 --- a/clang/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp +++ b/clang/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp @@ -101,6 +101,9 @@ private: /// \return Executed lines from \p D in JSON format. std::string serializeExecutedLines(const PathDiagnostic &D); + + /// \return Javascript for displaying shortcuts help; + std::string showHelpJavascript(); }; } // end anonymous namespace @@ -347,6 +350,8 @@ void HTMLDiagnostics::FinalizeHTML(const PathDiagnostic& D, Rewriter &R, int LineNumber = path.back()->getLocation().asLocation().getExpansionLineNumber(); int ColumnNumber = path.back()->getLocation().asLocation().getExpansionColumnNumber(); + R.InsertTextBefore(SMgr.getLocForStartOfFile(FID), showHelpJavascript()); + R.InsertTextBefore(SMgr.getLocForStartOfFile(FID), generateKeyboardNavigationJavascript()); @@ -399,9 +404,17 @@ void HTMLDiagnostics::FinalizeHTML(const PathDiagnostic& D, Rewriter &R,

Annotated Source Code

-

[?] - Use j/k keys for keyboard navigation -

+

Press '?' + to see keyboard shortcuts

+ )<<<"; R.InsertTextBefore(SMgr.getLocForStartOfFile(FID), os.str()); @@ -461,6 +474,34 @@ void HTMLDiagnostics::FinalizeHTML(const PathDiagnostic& D, Rewriter &R, html::AddHeaderFooterInternalBuiltinCSS(R, FID, Entry->getName()); } +std::string HTMLDiagnostics::showHelpJavascript() { + return R"<<<( + +)<<<"; +} + std::string HTMLDiagnostics::showRelevantLinesJavascript(const PathDiagnostic &D) { std::string s;