From 09517cca929ee73a2a7cd089f6aed4b022976147 Mon Sep 17 00:00:00 2001 From: Florian Date: Wed, 10 May 2023 21:14:57 +0200 Subject: [PATCH] add emoji auto completion (suggestion) - typing `<:` will start the emoji auto complition inside the plantuml editor - for the sake of simplicity the emoji preview of the completion documentation will fetch the image from the original github repository (not plantuml). The reason is that the images (SVGs) inside plantuml have sometimes removed their svg tag, hence it's difficult to set the correct rendering size. - expand auto completion (suggestion) documentation by default - add emoji example GIF and documentation - set charset to utf-8 for each website - refactor JSON creation inside UI Helper --- docs/WebUI/gifs/auto-completion-emojis.gif | Bin 0 -> 145188 bytes docs/WebUI/language-features.md | 10 +++ .../servlet/PlantUmlUIHelperServlet.java | 72 ++++++++++++------ src/main/webapp/plantuml.css | 7 +- src/main/webapp/plantuml.js | 13 +++- src/main/webapp/plantumllanguage.js | 53 +++++++++++++ src/main/webapp/resource/htmlheadbase.jsp | 1 + 7 files changed, 130 insertions(+), 26 deletions(-) create mode 100644 docs/WebUI/gifs/auto-completion-emojis.gif diff --git a/docs/WebUI/gifs/auto-completion-emojis.gif b/docs/WebUI/gifs/auto-completion-emojis.gif new file mode 100644 index 0000000000000000000000000000000000000000..d2f9168427ac4f2d0bac7ac5a626de8f3e034f9d GIT binary patch literal 145188 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�pii&_i$N3Eu@tpNw{ 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 aLI4PW_JrgEP~ac{Kske=Xzj*;+W!FFdNJVu literal 0 HcmV?d00001 diff --git a/docs/WebUI/language-features.md b/docs/WebUI/language-features.md index 71a4879..56b87c6 100644 --- a/docs/WebUI/language-features.md +++ b/docs/WebUI/language-features.md @@ -6,13 +6,23 @@ - type `<&` to get a list of PlantUML available icons - see a preview of the suggested icon in its description +- [PlantUML documentation](https://plantuml.com/openiconic) ![icons](https://raw.githubusercontent.com/plantuml/plantuml-server/master/docs/WebUI/gifs/auto-completion-icons.gif) +### Emojis + +- type `<:` to get a list of PlantUML available icons +- see a preview of the suggested icon in its description +- [PlantUML documentation](https://plantuml.com/creole#68305e25f5788db0) + +![emojis](https://raw.githubusercontent.com/plantuml/plantuml-server/master/docs/WebUI/gifs/auto-completion-emojis.gif) + ### Themes - type `!t` to get the suggestion `theme` - type `!theme ` to get a list of (local) available PlantUML themes. +- [PlantUML documentation](https://plantuml.com/theme) ![themes](https://raw.githubusercontent.com/plantuml/plantuml-server/master/docs/WebUI/gifs/auto-completion-themes.gif) diff --git a/src/main/java/net/sourceforge/plantuml/servlet/PlantUmlUIHelperServlet.java b/src/main/java/net/sourceforge/plantuml/servlet/PlantUmlUIHelperServlet.java index d3bc5be..f49af62 100644 --- a/src/main/java/net/sourceforge/plantuml/servlet/PlantUmlUIHelperServlet.java +++ b/src/main/java/net/sourceforge/plantuml/servlet/PlantUmlUIHelperServlet.java @@ -30,12 +30,11 @@ import java.io.InputStreamReader; import java.io.StringWriter; import java.io.Writer; import java.util.HashMap; -import java.util.List; import java.util.Map; import java.util.logging.Level; import java.util.logging.Logger; -import java.util.stream.Collectors; +import javax.xml.XMLConstants; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; @@ -50,7 +49,10 @@ import jakarta.servlet.ServletException; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; - +import net.sourceforge.plantuml.FileFormat; +import net.sourceforge.plantuml.emoji.data.Dummy; +import net.sourceforge.plantuml.json.Json; +import net.sourceforge.plantuml.json.JsonArray; import net.sourceforge.plantuml.theme.ThemeUtils; import net.sourceforge.plantuml.openiconic.data.DummyIcon; @@ -73,6 +75,7 @@ public class PlantUmlUIHelperServlet extends HttpServlet { public PlantUmlUIHelperServlet() { // add all supported request items/helper methods + helpers.put("emojis", this::sendEmojis); helpers.put("icons.svg", this::sendIconsSprite); helpers.put("icons", this::sendIcons); helpers.put("themes", this::sendThemes); @@ -91,8 +94,7 @@ public class PlantUmlUIHelperServlet extends HttpServlet { errorMsg = "Unknown requested item: " + requestItem; } if (errorMsg != null) { - response.addHeader("Access-Control-Allow-Origin", "*"); - response.setContentType("text/plain;charset=UTF-8"); + setDefaultHeader(response, FileFormat.UTXT); response.getWriter().write(errorMsg); response.setStatus(HttpServletResponse.SC_BAD_REQUEST); return; @@ -101,29 +103,36 @@ public class PlantUmlUIHelperServlet extends HttpServlet { requestHelper.accept(request, response); } - private String toJson(List list) { - return "[" + list.stream() - .map(item -> "\"" + item.replace("\"", "\\\"") + "\"") - .collect(Collectors.joining(",")) + "]"; + private void setDefaultHeader(HttpServletResponse response, FileFormat fileFormat) { + setDefaultHeader(response, fileFormat.getMimeType()); + } + + private HttpServletResponse setDefaultHeader(HttpServletResponse response, String contentType) { + response.addHeader("Access-Control-Allow-Origin", "*"); + response.setContentType(contentType); + return response; } private void sendJson(HttpServletResponse response, String json) throws IOException { - response.addHeader("Access-Control-Allow-Origin", "*"); - response.setContentType("application/json;charset=UTF-8"); + setDefaultHeader(response, "application/json;charset=UTF-8"); response.getWriter().write(json); } - private List getIcons() throws IOException { + private String[] getIcons() throws IOException { InputStream in = DummyIcon.class.getResourceAsStream("all.txt"); try (BufferedReader br = new BufferedReader(new InputStreamReader(in))) { - return br.lines().collect(Collectors.toList()); + return br.lines().toArray(String[]::new); } } + private void sendIcons(HttpServletRequest request, HttpServletResponse response) throws IOException { + sendJson(response, Json.array(getIcons()).toString()); + } + private void sendIconsSprite(HttpServletRequest request, HttpServletResponse response) throws IOException { if (svgIconsSpriteCache == null) { // NOTE: all icons has the following svg tag attributes: width="8" height="8" viewBox="0 0 8 8" - List iconNames = getIcons(); + String[] iconNames = getIcons(); StringBuilder sprite = new StringBuilder(); sprite.append("\n"); sprite.append("\n"); @@ -134,12 +143,19 @@ public class PlantUmlUIHelperServlet extends HttpServlet { sprite.append("\n"); for (String name : iconNames) { try (InputStream in = DummyIcon.class.getResourceAsStream(name + ".svg")) { - DocumentBuilder db = DocumentBuilderFactory.newInstance().newDocumentBuilder(); + DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance(); + docFactory.setAttribute(XMLConstants.ACCESS_EXTERNAL_DTD, ""); + docFactory.setAttribute(XMLConstants.ACCESS_EXTERNAL_SCHEMA, ""); + DocumentBuilder db = docFactory.newDocumentBuilder(); Document doc = db.parse(in); + Writer out = new StringWriter(); out.write(""); - Transformer tf = TransformerFactory.newInstance().newTransformer(); + TransformerFactory tfFactory = TransformerFactory.newInstance(); + tfFactory.setAttribute(XMLConstants.ACCESS_EXTERNAL_DTD, ""); + tfFactory.setAttribute(XMLConstants.ACCESS_EXTERNAL_STYLESHEET, ""); + Transformer tf = tfFactory.newTransformer(); tf.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes"); tf.setOutputProperty(OutputKeys.ENCODING, "UTF-8"); tf.setOutputProperty(OutputKeys.INDENT, "no"); @@ -153,22 +169,34 @@ public class PlantUmlUIHelperServlet extends HttpServlet { } catch (ParserConfigurationException | SAXException | TransformerException ex) { // skip icons which can not be parsed/read Logger logger = Logger.getLogger("com.plantuml"); - logger.log(Level.WARNING, "SVG icon '{0}' could not be parsed. Skip!", name); + logger.log(Level.WARNING, "SVG icon \"{0}\" could not be parsed. Skip!", name); } } sprite.append("\n"); svgIconsSpriteCache = sprite.toString(); } - response.addHeader("Access-Control-Allow-Origin", "*"); - response.setContentType("image/svg+xml;charset=UTF-8"); + setDefaultHeader(response, FileFormat.SVG); response.getWriter().write(svgIconsSpriteCache); } - private void sendIcons(HttpServletRequest request, HttpServletResponse response) throws IOException { - sendJson(response, toJson(getIcons())); + private String[][] getEmojis() throws IOException { + InputStream in = Dummy.class.getResourceAsStream("emoji.txt"); + try (BufferedReader br = new BufferedReader(new InputStreamReader(in))) { + return br.lines().map(line -> line.split(";")).toArray(String[][]::new); + } + } + + private void sendEmojis(HttpServletRequest request, HttpServletResponse response) throws IOException { + String[][] emojis = getEmojis(); + JsonArray json = new JsonArray(); + for (String[] emojiUnicodeNamePair : emojis) { + json.add(Json.array(emojiUnicodeNamePair)); + } + sendJson(response, json.toString()); } private void sendThemes(HttpServletRequest request, HttpServletResponse response) throws IOException { - sendJson(response, toJson(ThemeUtils.getAllThemeNames())); + String[] themes = ThemeUtils.getAllThemeNames().toArray(new String[0]); + sendJson(response, Json.array(themes).toString()); } } diff --git a/src/main/webapp/plantuml.css b/src/main/webapp/plantuml.css index c0aa6eb..196f2ac 100644 --- a/src/main/webapp/plantuml.css +++ b/src/main/webapp/plantuml.css @@ -153,9 +153,10 @@ select { #monaco-editor { height: 100%; } -/* Hack to display the icons in the icon auto completion documentation in a visible size. - * (see PlantUmlLanguageFeatures.registerIconCompletion) */ -#monaco-editor .overlayWidgets .suggest-details p img[alt="icon"] { +/* Hack to display the icons and emojis in the auto completion documentation in a visible size. + * (see PlantUmlLanguageFeatures.register{Icon,Emoji}Completion) */ +#monaco-editor .overlayWidgets .suggest-details p img[alt="icon"], +#monaco-editor .overlayWidgets .suggest-details p img[alt="emoji"] { height: 1.2rem; } diff --git a/src/main/webapp/plantuml.js b/src/main/webapp/plantuml.js index 0eb68e4..1b79631 100644 --- a/src/main/webapp/plantuml.js +++ b/src/main/webapp/plantuml.js @@ -549,10 +549,21 @@ function initializeCodeEditor() { }, document.appConfig.editorWatcherTimeout); } }); + // create storage service to expand suggestion documentation by default + const storageService = { + get() {}, + getBoolean(key) { return key === 'expandSuggestionDocs'; }, + getNumber() { return 0; }, + remove() {}, + store() {}, + onWillSaveState() {}, + onDidChangeStorage() {}, + onDidChangeValue() {}, + }; // create editor document.editor = monaco.editor.create(document.getElementById("monaco-editor"), { model, ...document.appConfig.editorCreateOptions - }); + }, { storageService }); // sometimes the monaco editor has resize problems document.addEventListener("resize", () => document.editor.layout()); } diff --git a/src/main/webapp/plantumllanguage.js b/src/main/webapp/plantumllanguage.js index be2aa98..f40cf2f 100644 --- a/src/main/webapp/plantumllanguage.js +++ b/src/main/webapp/plantumllanguage.js @@ -284,6 +284,48 @@ const PlantUmlLanguageFeatures = (function() { }); }; + this.registerEmojiCompletion = () => { + const createEmojiProposals = async (range, filter = undefined) => { + const emojis = await this.getEmojis(); + return emojis?.filter(([unicode, name]) => filter ? unicode.includes(filter) || name?.includes(filter) : true) + .map(([unicode, name]) => { + // NOTE: load images direct from GitHub source: https://github.com/twitter/twemoji#download + const emojiUrl = "https://raw.githubusercontent.com/twitter/twemoji/gh-pages/v/13.1.0/svg/" + unicode + ".svg"; + const docHint = (name) ? name + " (" + unicode + ")" : unicode; + const isUnicode = !name || (filter && unicode.includes(filter)); + const label = isUnicode ? unicode : name; + return { + label: label, + kind: monaco.languages.CompletionItemKind.Constant, + documentation: { + //supportHtml: true, // also a possibility but quite limited html + value: "![emoji](" + emojiUrl + ")   " + docHint + }, + insertText: label + ":>", + range: range + }; + }) || []; + }; + + monaco.languages.registerCompletionItemProvider(languageSelector, { + triggerCharacters: [":"], + provideCompletionItems: async (model, position) => { + const textUntilPosition = model.getValueInRange({ + startLineNumber: position.lineNumber, + startColumn: 1, + endLineNumber: position.lineNumber, + endColumn: position.column, + }); + const match = textUntilPosition.match(/<:(?[^\s>]*)$/); + if (match) { + const suggestions = await createEmojiProposals(getWordRange(model, position), match.groups.emoji); + return { suggestions }; + } + return { suggestions: [] }; + } + }); + }; + // ========================================================================================================== // == helper methods == @@ -308,6 +350,16 @@ const PlantUmlLanguageFeatures = (function() { } })(); + this.getEmojis = (function(){ + let emojis = undefined; + return async () => { + if (emojis === undefined) { + emojis = await makeRequest("GET", "ui-helper?request=emojis", { responseType: "json" }); + } + return emojis; + } + })(); + this.getThemes = (function(){ let themes = undefined; return async () => { @@ -377,6 +429,7 @@ const PlantUmlLanguageFeatures = (function() { this.addStartEndValidationListeners(); this.registerThemeCompletion(); this.registerIconCompletion(); + this.registerEmojiCompletion(); } } diff --git a/src/main/webapp/resource/htmlheadbase.jsp b/src/main/webapp/resource/htmlheadbase.jsp index cad24c0..23ed6bd 100644 --- a/src/main/webapp/resource/htmlheadbase.jsp +++ b/src/main/webapp/resource/htmlheadbase.jsp @@ -1,4 +1,5 @@ +