From 51290a1f4282440783f16ecc5b75a1c5adcf281a Mon Sep 17 00:00:00 2001 From: Martin Lopez Date: Wed, 22 May 2024 15:19:47 -0300 Subject: [PATCH 01/41] feat: add initial implementation --- .gitignore | 3 +- pom.xml | 8 +- src/main/frontend/index.html | 23 ++ .../addons/syntaxhighlighter/SHLanguage.java | 207 +++++++++++++ .../syntaxhighlighter/SHLanguagePrism.java | 291 ++++++++++++++++++ .../addons/syntaxhighlighter/SHStyle.java | 113 +++++++ .../syntaxhighlighter/SHStylePrism.java | 60 ++++ .../syntaxhighlighter/SyntaxHighlighter.java | 90 ++++++ .../SyntaxHighlighterPrism.java | 90 ++++++ .../vaadin/addons/template/TemplateAddon.java | 32 -- .../react-syntax-highlighter-prism.tsx | 31 ++ .../frontend/react-syntax-highlighter.tsx | 31 ++ .../frontend/styles/static_addon_styles | 0 .../DemoView.java | 4 +- .../SyntaxHighlighterDemo.java | 62 ++++ .../SyntaxHighlighterDemoView.java} | 13 +- .../SyntaxHighlighterPrismDemo.java | 62 ++++ .../it/AbstractViewTest.java | 2 +- .../it/ViewIT.java | 2 +- .../test/SerializationTest.java | 6 +- .../vaadin/addons/template/TemplateDemo.java | 17 - 21 files changed, 1079 insertions(+), 68 deletions(-) create mode 100644 src/main/frontend/index.html create mode 100644 src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SHLanguage.java create mode 100644 src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SHLanguagePrism.java create mode 100644 src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SHStyle.java create mode 100644 src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SHStylePrism.java create mode 100644 src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighter.java create mode 100644 src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrism.java delete mode 100644 src/main/java/com/flowingcode/vaadin/addons/template/TemplateAddon.java create mode 100644 src/main/resources/META-INF/resources/frontend/react-syntax-highlighter-prism.tsx create mode 100644 src/main/resources/META-INF/resources/frontend/react-syntax-highlighter.tsx rename src/main/resources/META-INF/{ => resources}/frontend/styles/static_addon_styles (100%) rename src/test/java/com/flowingcode/vaadin/addons/{template => syntaxhighlighter}/DemoView.java (90%) create mode 100644 src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterDemo.java rename src/test/java/com/flowingcode/vaadin/addons/{template/TemplateDemoView.java => syntaxhighlighter/SyntaxHighlighterDemoView.java} (74%) create mode 100644 src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrismDemo.java rename src/test/java/com/flowingcode/vaadin/addons/{template => syntaxhighlighter}/it/AbstractViewTest.java (98%) rename src/test/java/com/flowingcode/vaadin/addons/{template => syntaxhighlighter}/it/ViewIT.java (97%) rename src/test/java/com/flowingcode/vaadin/addons/{template => syntaxhighlighter}/test/SerializationTest.java (89%) delete mode 100644 src/test/java/com/flowingcode/vaadin/addons/template/TemplateDemo.java diff --git a/.gitignore b/.gitignore index 8a30ffa..79759ae 100644 --- a/.gitignore +++ b/.gitignore @@ -13,8 +13,7 @@ drivers tsconfig.json .idea types.d.ts -/frontend/generated -/frontend/index.html +src/main/frontend/generated vite.generated.ts vite.config.ts /src/main/dev-bundle \ No newline at end of file diff --git a/pom.xml b/pom.xml index 227f24a..9abd789 100644 --- a/pom.xml +++ b/pom.xml @@ -5,14 +5,14 @@ 4.0.0 com.flowingcode.vaadin.addons - template-addon + syntax-highlighter-addon 1.0.0-SNAPSHOT - Template Add-on - Template Add-on for Vaadin Flow + Syntax Highlighter Add-on + Syntax Highlighter Add-on for Vaadin Flow https://www.flowingcode.com/en/open-source/ - 24.3.0 + 24.4.0.beta1 4.10.0 17 17 diff --git a/src/main/frontend/index.html b/src/main/frontend/index.html new file mode 100644 index 0000000..d36e593 --- /dev/null +++ b/src/main/frontend/index.html @@ -0,0 +1,23 @@ + + + + + + + + + + + + +
+ + diff --git a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SHLanguage.java b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SHLanguage.java new file mode 100644 index 0000000..37d838e --- /dev/null +++ b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SHLanguage.java @@ -0,0 +1,207 @@ +package com.flowingcode.vaadin.addons.syntaxhighlighter; + +public enum SHLanguage { + + ONEC("oneC"), + ABNF("abnf"), + ACCESSLOG("accesslog"), + ACTIONSCRIPT("actionscript"), + ADA("ada"), + ANGELSCRIPT("angelscript"), + APACHE("apache"), + APPLESCRIPT("applescript"), + ARCADE("arcade"), + ARDUINO("arduino"), + ARMASM("armasm"), + ASCIIDOC("asciidoc"), + ASPECTJ("aspectj"), + AUTOHOTKEY("autohotkey"), + AUTOIT("autoit"), + AVRASM("avrasm"), + AWK("awk"), + AXAPTA("axapta"), + BASH("bash"), + BASIC("basic"), + BNF("bnf"), + BRAINFUCK("brainfuck"), + CLIKE("cLike"), + C("c"), + CAL("cal"), + CAPNPROTO("capnproto"), + CEYLON("ceylon"), + CLEAN("clean"), + CLOJUREREPL("clojureRepl"), + CLOJURE("clojure"), + CMAKE("cmake"), + COFFEESCRIPT("coffeescript"), + COQ("coq"), + COS("cos"), + CPP("cpp"), + CRMSH("crmsh"), + CRYSTAL("crystal"), + CSHARP("csharp"), + CSP("csp"), + CSS("css"), + D("d"), + DART("dart"), + DELPHI("delphi"), + DIFF("diff"), + DJANGO("django"), + DNS("dns"), + DOCKERFILE("dockerfile"), + DOS("dos"), + DSCONFIG("dsconfig"), + DTS("dts"), + DUST("dust"), + EBNF("ebnf"), + ELIXIR("elixir"), + ELM("elm"), + ERB("erb"), + ERLANGREPL("erlangRepl"), + ERLANG("erlang"), + EXCEL("excel"), + FIX("fix"), + FLIX("flix"), + FORTRAN("fortran"), + FSHARP("fsharp"), + GAMS("gams"), + GAUSS("gauss"), + GCODE("gcode"), + GHERKIN("gherkin"), + GLSL("glsl"), + GML("gml"), + GO("go"), + GOLO("golo"), + GRADLE("gradle"), + GROOVY("groovy"), + HAML("haml"), + HANDLEBARS("handlebars"), + HASKELL("haskell"), + HAXE("haxe"), + HSP("hsp"), + HTMLBARS("htmlbars"), + HTTP("http"), + HY("hy"), + INFORM7("inform7"), + INI("ini"), + IRPF90("irpf90"), + ISBL("isbl"), + JAVA("java"), + JAVASCRIPT("javascript"), + JBOSSCLI("jbossCli"), + JSON("json"), + JULIAREPL("juliaRepl"), + JULIA("julia"), + KOTLIN("kotlin"), + LASSO("lasso"), + LATEX("latex"), + LDIF("ldif"), + LEAF("leaf"), + LESS("less"), + LISP("lisp"), + LIVECODESERVER("livecodeserver"), + LIVESCRIPT("livescript"), + LLVM("llvm"), + LSL("lsl"), + LUA("lua"), + MAKEFILE("makefile"), + MARKDOWN("markdown"), + MATHEMATICA("mathematica"), + MATLAB("matlab"), + MAXIMA("maxima"), + MEL("mel"), + MERCURY("mercury"), + MIPSASM("mipsasm"), + MIZAR("mizar"), + MOJOLICIOUS("mojolicious"), + MONKEY("monkey"), + MOONSCRIPT("moonscript"), + N1QL("n1ql"), + NGINX("nginx"), + NIM("nim"), + NIX("nix"), + NODEREPL("nodeRepl"), + NSIS("nsis"), + OBJECTIVEC("objectivec"), + OCAML("ocaml"), + OPENSCAD("openscad"), + OXYGENE("oxygene"), + PARSER3("parser3"), + PERL("perl"), + PF("pf"), + PGSQL("pgsql"), + PHPTEMPLATE("phpTemplate"), + PHP("php"), + PLAINTEXT("plaintext"), + PONY("pony"), + POWERSHELL("powershell"), + PROCESSING("processing"), + PROFILE("profile"), + PROLOG("prolog"), + PROPERTIES("properties"), + PROTOBUF("protobuf"), + PUPPET("puppet"), + PUREBASIC("purebasic"), + PYTHONREPL("pythonRepl"), + PYTHON("python"), + Q("q"), + QML("qml"), + R("r"), + REASONML("reasonml"), + RIB("rib"), + ROBOCONF("roboconf"), + ROUTEROS("routeros"), + RSL("rsl"), + RUBY("ruby"), + RULESLANGUAGE("ruleslanguage"), + RUST("rust"), + SAS("sas"), + SCALA("scala"), + SCHEME("scheme"), + SCILAB("scilab"), + SCSS("scss"), + SHELL("shell"), + SMALI("smali"), + SMALLTALK("smalltalk"), + SML("sml"), + SQF("sqf"), + SQL("sql"), + SQLMORE("sqlMore"), + STAN("stan"), + STATA("stata"), + STEP21("step21"), + STYLUS("stylus"), + SUBUNIT("subunit"), + SWIFT("swift"), + TAGGERSCRIPT("taggerscript"), + TAP("tap"), + TCL("tcl"), + THRIFT("thrift"), + TP("tp"), + TWIG("twig"), + TYPESCRIPT("typescript"), + VALA("vala"), + VBNET("vbnet"), + VBSCRIPTHTML("vbscriptHtml"), + VBSCRIPT("vbscript"), + VERILOG("verilog"), + VHDL("vhdl"), + VIM("vim"), + X86ASM("x86asm"), + XL("xl"), + XML("xml"), + XQUERY("xquery"), + YAML("yaml"), + ZEPHIR("zephir"); + + private final String name; + + private SHLanguage(String language) { + name = language; + } + + public String getName() { + return name; + } + +} diff --git a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SHLanguagePrism.java b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SHLanguagePrism.java new file mode 100644 index 0000000..524adcd --- /dev/null +++ b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SHLanguagePrism.java @@ -0,0 +1,291 @@ +package com.flowingcode.vaadin.addons.syntaxhighlighter; + +public enum SHLanguagePrism { + + ACTIONSCRIPT("actionscript"), + ADA("ada"), + AGDA("agda"), + AL("al"), + ANTLR4("antlr4"), + APACHECONF("apacheconf"), + APEX("apex"), + APL("apl"), + APPLESCRIPT("applescript"), + AQL("aql"), + ARDUINO("arduino"), + ARFF("arff"), + ASCIIDOC("asciidoc"), + ASM6502("asm6502"), + ASMATMEL("asmatmel"), + ASPNET("aspnet"), + AUTOHOTKEY("autohotkey"), + AUTOIT("autoit"), + AVISYNTH("avisynth"), + AVROIDL("avroIdl"), + BASH("bash"), + BASIC("basic"), + BATCH("batch"), + BBCODE("bbcode"), + BICEP("bicep"), + BIRB("birb"), + BISON("bison"), + BNF("bnf"), + BRAINFUCK("brainfuck"), + BRIGHTSCRIPT("brightscript"), + BRO("bro"), + BSL("bsl"), + C("c"), + CFSCRIPT("cfscript"), + CHAISCRIPT("chaiscript"), + CIL("cil"), + CLIKE("clike"), + CLOJURE("clojure"), + CMAKE("cmake"), + COBOL("cobol"), + COFFEESCRIPT("coffeescript"), + CONCURNAS("concurnas"), + COQ("coq"), + CPP("cpp"), + CRYSTAL("crystal"), + CSHARP("csharp"), + CSHTML("cshtml"), + CSP("csp"), + CSSEXTRAS("cssExtras"), + CSS("css"), + CSV("csv"), + CYPHER("cypher"), + D("d"), + DART("dart"), + DATAWEAVE("dataweave"), + DAX("dax"), + DHALL("dhall"), + DIFF("diff"), + DJANGO("django"), + DNSZONEFILE("dnsZoneFile"), + DOCKER("docker"), + DOT("dot"), + EBNF("ebnf"), + EDITORCONFIG("editorconfig"), + EIFFEL("eiffel"), + EJS("ejs"), + ELIXIR("elixir"), + ELM("elm"), + ERB("erb"), + ERLANG("erlang"), + ETLUA("etlua"), + EXCELFORMULA("excelFormula"), + FACTOR("factor"), + FALSELANG("falselang"), + FIRESTORESECURITYRULES("firestoreSecurityRules"), + FLOW("flow"), + FORTRAN("fortran"), + FSHARP("fsharp"), + FTL("ftl"), + GAP("gap"), + GCODE("gcode"), + GDSCRIPT("gdscript"), + GEDCOM("gedcom"), + GHERKIN("gherkin"), + GIT("git"), + GLSL("glsl"), + GML("gml"), + GN("gn"), + GOMODULE("goModule"), + GO("go"), + GRAPHQL("graphql"), + GROOVY("groovy"), + HAML("haml"), + HANDLEBARS("handlebars"), + HASKELL("haskell"), + HAXE("haxe"), + HCL("hcl"), + HLSL("hlsl"), + HOON("hoon"), + HPKP("hpkp"), + HSTS("hsts"), + HTTP("http"), + ICHIGOJAM("ichigojam"), + ICON("icon"), + ICUMESSAGEFORMAT("icuMessageFormat"), + IDRIS("idris"), + IECST("iecst"), + IGNORE("ignore"), + INFORM7("inform7"), + INI("ini"), + IO("io"), + J("j"), + JAVA("java"), + JAVADOC("javadoc"), + JAVADOCLIKE("javadoclike"), + JAVASCRIPT("javascript"), + JAVASTACKTRACE("javastacktrace"), + JEXL("jexl"), + JOLIE("jolie"), + JQ("jq"), + JSEXTRAS("jsExtras"), + JSTEMPLATES("jsTemplates"), + JSDOC("jsdoc"), + JSON("json"), + JSON5("json5"), + JSONP("jsonp"), + JSSTACKTRACE("jsstacktrace"), + JSX("jsx"), + JULIA("julia"), + KEEPALIVED("keepalived"), + KEYMAN("keyman"), + KOTLIN("kotlin"), + KUMIR("kumir"), + KUSTO("kusto"), + LATEX("latex"), + LATTE("latte"), + LESS("less"), + LILYPOND("lilypond"), + LIQUID("liquid"), + LISP("lisp"), + LIVESCRIPT("livescript"), + LLVM("llvm"), + LOG("log"), + LOLCODE("lolcode"), + LUA("lua"), + MAGMA("magma"), + MAKEFILE("makefile"), + MARKDOWN("markdown"), + MARKUPTEMPLATING("markupTemplating"), + MARKUP("markup"), + MATLAB("matlab"), + MAXSCRIPT("maxscript"), + MEL("mel"), + MERMAID("mermaid"), + MIZAR("mizar"), + MONGODB("mongodb"), + MONKEY("monkey"), + MOONSCRIPT("moonscript"), + N1QL("n1ql"), + N4JS("n4js"), + NAND2TETRISHDL("nand2tetrisHdl"), + NANISCRIPT("naniscript"), + NASM("nasm"), + NEON("neon"), + NEVOD("nevod"), + NGINX("nginx"), + NIM("nim"), + NIX("nix"), + NSIS("nsis"), + OBJECTIVEC("objectivec"), + OCAML("ocaml"), + OPENCL("opencl"), + OPENQASM("openqasm"), + OZ("oz"), + PARIGP("parigp"), + PARSER("parser"), + PASCAL("pascal"), + PASCALIGO("pascaligo"), + PCAXIS("pcaxis"), + PEOPLECODE("peoplecode"), + PERL("perl"), + PHPEXTRAS("phpExtras"), + PHP("php"), + PHPDOC("phpdoc"), + PLSQL("plsql"), + POWERQUERY("powerquery"), + POWERSHELL("powershell"), + PROCESSING("processing"), + PROLOG("prolog"), + PROMQL("promql"), + PROPERTIES("properties"), + PROTOBUF("protobuf"), + PSL("psl"), + PUG("pug"), + PUPPET("puppet"), + PURE("pure"), + PUREBASIC("purebasic"), + PURESCRIPT("purescript"), + PYTHON("python"), + Q("q"), + QML("qml"), + QORE("qore"), + QSHARP("qsharp"), + R("r"), + RACKET("racket"), + REASON("reason"), + REGEX("regex"), + REGO("rego"), + RENPY("renpy"), + REST("rest"), + RIP("rip"), + ROBOCONF("roboconf"), + ROBOTFRAMEWORK("robotframework"), + RUBY("ruby"), + RUST("rust"), + SAS("sas"), + SASS("sass"), + SCALA("scala"), + SCHEME("scheme"), + SCSS("scss"), + SHELLSESSION("shellSession"), + SMALI("smali"), + SMALLTALK("smalltalk"), + SMARTY("smarty"), + SML("sml"), + SOLIDITY("solidity"), + SOLUTIONFILE("solutionFile"), + SOY("soy"), + SPARQL("sparql"), + SPLUNKSPL("splunkSpl"), + SQF("sqf"), + SQL("sql"), + SQUIRREL("squirrel"), + STAN("stan"), + STYLUS("stylus"), + SWIFT("swift"), + SYSTEMD("systemd"), + T4CS("t4Cs"), + T4TEMPLATING("t4Templating"), + T4VB("t4Vb"), + TAP("tap"), + TCL("tcl"), + TEXTILE("textile"), + TOML("toml"), + TREMOR("tremor"), + TSX("tsx"), + TT2("tt2"), + TURTLE("turtle"), + TWIG("twig"), + TYPESCRIPT("typescript"), + TYPOSCRIPT("typoscript"), + UNREALSCRIPT("unrealscript"), + UORAZOR("uorazor"), + URI("uri"), + V("v"), + VALA("vala"), + VBNET("vbnet"), + VELOCITY("velocity"), + VERILOG("verilog"), + VHDL("vhdl"), + VIM("vim"), + VISUALBASIC("visualBasic"), + WARPSCRIPT("warpscript"), + WASM("wasm"), + WEBIDL("webIdl"), + WIKI("wiki"), + WOLFRAM("wolfram"), + WREN("wren"), + XEORA("xeora"), + XMLDOC("xmlDoc"), + XOJO("xojo"), + XQUERY("xquery"), + YAML("yaml"), + YANG("yang"), + ZIG("zig"); + + private final String name; + + private SHLanguagePrism(String language) { + name = language; + } + + public String getName() { + return name; + } + +} diff --git a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SHStyle.java b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SHStyle.java new file mode 100644 index 0000000..83fcb44 --- /dev/null +++ b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SHStyle.java @@ -0,0 +1,113 @@ +package com.flowingcode.vaadin.addons.syntaxhighlighter; + +public enum SHStyle { + + A11YDARK("a11yDark"), + A11YLIGHT("a11yLight"), + AGATE("agate"), + ANOLDHOPE("anOldHope"), + ANDROIDSTUDIO("androidstudio"), + ARDUINOLIGHT("arduinoLight"), + ARTA("arta"), + ASCETIC("ascetic"), + ATELIERCAVEDARK("atelierCaveDark"), + ATELIERCAVELIGHT("atelierCaveLight"), + ATELIERDUNEDARK("atelierDuneDark"), + ATELIERDUNELIGHT("atelierDuneLight"), + ATELIERESTUARYDARK("atelierEstuaryDark"), + ATELIERESTUARYLIGHT("atelierEstuaryLight"), + ATELIERFORESTDARK("atelierForestDark"), + ATELIERFORESTLIGHT("atelierForestLight"), + ATELIERHEATHDARK("atelierHeathDark"), + ATELIERHEATHLIGHT("atelierHeathLight"), + ATELIERLAKESIDEDARK("atelierLakesideDark"), + ATELIERLAKESIDELIGHT("atelierLakesideLight"), + ATELIERPLATEAUDARK("atelierPlateauDark"), + ATELIERPLATEAULIGHT("atelierPlateauLight"), + ATELIERSAVANNADARK("atelierSavannaDark"), + ATELIERSAVANNALIGHT("atelierSavannaLight"), + ATELIERSEASIDEDARK("atelierSeasideDark"), + ATELIERSEASIDELIGHT("atelierSeasideLight"), + ATELIERSULPHURPOOLDARK("atelierSulphurpoolDark"), + ATELIERSULPHURPOOLLIGHT("atelierSulphurpoolLight"), + ATOMONEDARKREASONABLE("atomOneDarkReasonable"), + ATOMONEDARK("atomOneDark"), + ATOMONELIGHT("atomOneLight"), + BROWNPAPER("brownPaper"), + CODEPENEMBED("codepenEmbed"), + COLORBREWER("colorBrewer"), + DARCULA("darcula"), + DARK("dark"), + DEFAULTSTYLE("defaultStyle"), + DOCCO("docco"), + DRACULA("dracula"), + FAR("far"), + FOUNDATION("foundation"), + GITHUBGIST("githubGist"), + GITHUB("github"), + GML("gml"), + GOOGLECODE("googlecode"), + GRADIENTDARK("gradientDark"), + GRADIENTLIGHT("gradientLight"), + GRAYSCALE("grayscale"), + GRUVBOXDARK("gruvboxDark"), + GRUVBOXLIGHT("gruvboxLight"), + HOPSCOTCH("hopscotch"), + HYBRID("hybrid"), + IDEA("idea"), + IRBLACK("irBlack"), + ISBLEDITORDARK("isblEditorDark"), + ISBLEDITORLIGHT("isblEditorLight"), + KIMBIEDARK("kimbieDark"), + KIMBIELIGHT("kimbieLight"), + LIGHTFAIR("lightfair"), + LIOSHI("lioshi"), + MAGULA("magula"), + MONOBLUE("monoBlue"), + MONOKAISUBLIME("monokaiSublime"), + MONOKAI("monokai"), + NIGHTOWL("nightOwl"), + NNFXDARK("nnfxDark"), + NNFX("nnfx"), + NORD("nord"), + OBSIDIAN("obsidian"), + OCEAN("ocean"), + PARAISODARK("paraisoDark"), + PARAISOLIGHT("paraisoLight"), + POJOAQUE("pojoaque"), + PUREBASIC("purebasic"), + QTCREATORDARK("qtcreatorDark"), + QTCREATORLIGHT("qtcreatorLight"), + RAILSCASTS("railscasts"), + RAINBOW("rainbow"), + ROUTEROS("routeros"), + SCHOOLBOOK("schoolBook"), + SHADESOFPURPLE("shadesOfPurple"), + SOLARIZEDDARK("solarizedDark"), + SOLARIZEDLIGHT("solarizedLight"), + SRCERY("srcery"), + STACKOVERFLOWDARK("stackoverflowDark"), + STACKOVERFLOWLIGHT("stackoverflowLight"), + SUNBURST("sunburst"), + TOMORROWNIGHTBLUE("tomorrowNightBlue"), + TOMORROWNIGHTBRIGHT("tomorrowNightBright"), + TOMORROWNIGHTEIGHTIES("tomorrowNightEighties"), + TOMORROWNIGHT("tomorrowNight"), + TOMORROW("tomorrow"), + VS("vs"), + VS2015("vs2015"), + XCODE("xcode"), + XT256("xt256"), + ZENBURN("zenburn"); + + private final String name; + + private SHStyle(String style) { + name = style; + } + + public String getName() { + return name; + } + +} diff --git a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SHStylePrism.java b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SHStylePrism.java new file mode 100644 index 0000000..41643ff --- /dev/null +++ b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SHStylePrism.java @@ -0,0 +1,60 @@ +package com.flowingcode.vaadin.addons.syntaxhighlighter; + +public enum SHStylePrism { + + COY("coy"), + DARK("dark"), + FUNKY("funky"), + OKAIDIA("okaidia"), + SOLARIZEDLIGHT("solarizedlight"), + TOMORROW("tomorrow"), + TWILIGHT("twilight"), + PRISM("prism"), + A11YDARK("a11yDark"), + ATOMDARK("atomDark"), + BASE16ATELIERSULPHURPOOLLIGHT("base16AteliersulphurpoolLight"), + CB("cb"), + COLDARKCOLD("coldarkCold"), + COLDARKDARK("coldarkDark"), + COYWITHOUTSHADOWS("coyWithoutShadows"), + DARCULA("darcula"), + DRACULA("dracula"), + DUOTONEDARK("duotoneDark"), + DUOTONEEARTH("duotoneEarth"), + DUOTONEFOREST("duotoneForest"), + DUOTONELIGHT("duotoneLight"), + DUOTONESEA("duotoneSea"), + DUOTONESPACE("duotoneSpace"), + GHCOLORS("ghcolors"), + GRUVBOXDARK("gruvboxDark"), + GRUVBOXLIGHT("gruvboxLight"), + HOLITHEME("holiTheme"), + HOPSCOTCH("hopscotch"), + LUCARIO("lucario"), + MATERIALDARK("materialDark"), + MATERIALLIGHT("materialLight"), + MATERIALOCEANIC("materialOceanic"), + NIGHTOWL("nightOwl"), + NORD("nord"), + ONEDARK("oneDark"), + ONELIGHT("oneLight"), + POJOAQUE("pojoaque"), + SHADESOFPURPLE("shadesOfPurple"), + SOLARIZEDDARKATOM("solarizedDarkAtom"), + SYNTHWAVE84("synthwave84"), + VS("vs"), + VSCDARKPLUS("vscDarkPlus"), + XONOKAI("xonokai"), + ZTOUCH("zTouch"); + + private final String name; + + private SHStylePrism(String style) { + name = style; + } + + public String getName() { + return name; + } + +} diff --git a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighter.java b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighter.java new file mode 100644 index 0000000..d005ab9 --- /dev/null +++ b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighter.java @@ -0,0 +1,90 @@ +/*- + * #%L + * Template Add-on + * %% + * Copyright (C) 2023 Flowing Code + * %% + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ + +package com.flowingcode.vaadin.addons.syntaxhighlighter; + +import com.vaadin.flow.component.HasSize; +import com.vaadin.flow.component.Tag; +import com.vaadin.flow.component.dependency.JsModule; +import com.vaadin.flow.component.dependency.NpmPackage; +import com.vaadin.flow.component.react.ReactAdapterComponent; + +@SuppressWarnings("serial") +@NpmPackage(value = "react-syntax-highlighter", version = "15.5.0") +@JsModule("./react-syntax-highlighter.tsx") +@Tag("syntax-highlighter") +public class SyntaxHighlighter extends ReactAdapterComponent implements HasSize { + + public SyntaxHighlighter() { + this(SHLanguage.JAVA, null ,"a11yDark", false, false); + } + + public SyntaxHighlighter(SHLanguage language, SHStyle style, String content, boolean showLineNumbers, boolean wrapLines) { + setSHStyle(style); + setSHLanguage(language); + setContent(content); + setShowLineNumbers(showLineNumbers); + setWrapLines(wrapLines); + } + + public boolean isWrapLines() { + return getState("wrapLines", Boolean.class); + } + public void setWrapLines(boolean wrapLines) { + setState("wrapLines", wrapLines); + } + + public boolean isShowLineNumbers() { + return getState("showLineNumbers", Boolean.class); + } + public void setShowLineNumbers(boolean showLineNumbers) { + setState("showLineNumbers", showLineNumbers); + } + + public SHLanguage getSHLanguage() { + return SHLanguage.valueOf(getState("language", String.class)); + } + public void setSHLanguage(SHLanguage language) { + setState("language", language.getName()); + } + + public SHStyle getSHStyle() { + return SHStyle.valueOf(getState("style", String.class)); + } + public void setSHStyle(SHStyle style) { + setState("style", style.getName()); + } + + public String getContent() { + return getState("content", String.class); + } + public void setContent(String content) { + setState("content", content); + } + + @Override + public void setWidth(String width) { + getElement().executeJs("this.style.width = $0;", width); + } + public void setHeight(String height) { + getElement().executeJs("this.style.height = $0;", height); + } + +} diff --git a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrism.java b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrism.java new file mode 100644 index 0000000..ede2a91 --- /dev/null +++ b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrism.java @@ -0,0 +1,90 @@ +/*- + * #%L + * Template Add-on + * %% + * Copyright (C) 2023 Flowing Code + * %% + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ + +package com.flowingcode.vaadin.addons.syntaxhighlighter; + +import com.vaadin.flow.component.HasSize; +import com.vaadin.flow.component.Tag; +import com.vaadin.flow.component.dependency.JsModule; +import com.vaadin.flow.component.dependency.NpmPackage; +import com.vaadin.flow.component.react.ReactAdapterComponent; + +@SuppressWarnings("serial") +@NpmPackage(value = "react-syntax-highlighter", version = "15.5.0") +@JsModule("./react-syntax-highlighter-prism.tsx") +@Tag("syntax-highlighter-prism") +public class SyntaxHighlighterPrism extends ReactAdapterComponent implements HasSize { + + public SyntaxHighlighterPrism() { + this(SHLanguagePrism.JAVA, null ,"a11yDark", false, false); + } + + public SyntaxHighlighterPrism(SHLanguagePrism language, SHStylePrism style, String content, boolean showLineNumbers, boolean wrapLines) { + setSHStyle(style); + setSHLanguage(language); + setContent(content); + setShowLineNumbers(showLineNumbers); + setWrapLines(wrapLines); + } + + public boolean isWrapLines() { + return getState("wrapLines", Boolean.class); + } + public void setWrapLines(boolean wrapLines) { + setState("wrapLines", wrapLines); + } + + public boolean isShowLineNumbers() { + return getState("showLineNumbers", Boolean.class); + } + public void setShowLineNumbers(boolean showLineNumbers) { + setState("showLineNumbers", showLineNumbers); + } + + public SHLanguagePrism getSHLanguage() { + return SHLanguagePrism.valueOf(getState("language", String.class)); + } + public void setSHLanguage(SHLanguagePrism language) { + setState("language", language.getName()); + } + + public SHStylePrism getSHStyle() { + return SHStylePrism.valueOf(getState("style", String.class)); + } + public void setSHStyle(SHStylePrism style) { + setState("style", style.getName()); + } + + public String getContent() { + return getState("content", String.class); + } + public void setContent(String content) { + setState("content", content); + } + + @Override + public void setWidth(String width) { + getElement().executeJs("this.style.width = $0;", width); + } + public void setHeight(String height) { + getElement().executeJs("this.style.height = $0;", height); + } + +} diff --git a/src/main/java/com/flowingcode/vaadin/addons/template/TemplateAddon.java b/src/main/java/com/flowingcode/vaadin/addons/template/TemplateAddon.java deleted file mode 100644 index ab06f5a..0000000 --- a/src/main/java/com/flowingcode/vaadin/addons/template/TemplateAddon.java +++ /dev/null @@ -1,32 +0,0 @@ -/*- - * #%L - * Template Add-on - * %% - * Copyright (C) 2023 Flowing Code - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - -package com.flowingcode.vaadin.addons.template; - -import com.vaadin.flow.component.Tag; -import com.vaadin.flow.component.dependency.JsModule; -import com.vaadin.flow.component.dependency.NpmPackage; -import com.vaadin.flow.component.html.Div; - -@SuppressWarnings("serial") -@NpmPackage(value = "@polymer/paper-input", version = "3.2.1") -@JsModule("@polymer/paper-input/paper-input.js") -@Tag("paper-input") -public class TemplateAddon extends Div {} diff --git a/src/main/resources/META-INF/resources/frontend/react-syntax-highlighter-prism.tsx b/src/main/resources/META-INF/resources/frontend/react-syntax-highlighter-prism.tsx new file mode 100644 index 0000000..f726082 --- /dev/null +++ b/src/main/resources/META-INF/resources/frontend/react-syntax-highlighter-prism.tsx @@ -0,0 +1,31 @@ +import {type ReactElement} from 'react'; +import { Prism as SyntaxHighlighter } from 'react-syntax-highlighter'; +import * as styles from 'react-syntax-highlighter/dist/esm/styles/prism'; +import {ReactAdapterElement, type RenderHooks} from "Frontend/generated/flow/ReactAdapter"; +import React from 'react'; + +class SyntaxHighlighterPrismElement extends ReactAdapterElement { + + protected override render(hooks: RenderHooks): ReactElement | null { + const [language] = hooks.useState("language"); + const [content] = hooks.useState("content"); + const [style] = hooks.useState("style"); + const [showLineNumbers] = hooks.useState("showLineNumbers"); + const [wrapLongLines] = hooks.useState("wrapLongLines"); + + return + {content} + ; + } +} + +customElements.define("syntax-highlighter-prism",SyntaxHighlighterPrismElement); \ No newline at end of file diff --git a/src/main/resources/META-INF/resources/frontend/react-syntax-highlighter.tsx b/src/main/resources/META-INF/resources/frontend/react-syntax-highlighter.tsx new file mode 100644 index 0000000..440a32f --- /dev/null +++ b/src/main/resources/META-INF/resources/frontend/react-syntax-highlighter.tsx @@ -0,0 +1,31 @@ +import {type ReactElement} from 'react'; +import SyntaxHighlighter from 'react-syntax-highlighter'; +import * as styles from 'react-syntax-highlighter/dist/esm/styles/hljs'; +import {ReactAdapterElement, type RenderHooks} from "Frontend/generated/flow/ReactAdapter"; +import React from 'react'; + +class SyntaxHighlighterElement extends ReactAdapterElement { + + protected override render(hooks: RenderHooks): ReactElement | null { + const [language] = hooks.useState("language"); + const [content] = hooks.useState("content"); + const [style] = hooks.useState("style"); + const [showLineNumbers] = hooks.useState("showLineNumbers"); + const [wrapLongLines] = hooks.useState("wrapLongLines"); + + return + {content} + ; + } +} + +customElements.define("syntax-highlighter",SyntaxHighlighterElement); \ No newline at end of file diff --git a/src/main/resources/META-INF/frontend/styles/static_addon_styles b/src/main/resources/META-INF/resources/frontend/styles/static_addon_styles similarity index 100% rename from src/main/resources/META-INF/frontend/styles/static_addon_styles rename to src/main/resources/META-INF/resources/frontend/styles/static_addon_styles diff --git a/src/test/java/com/flowingcode/vaadin/addons/template/DemoView.java b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/DemoView.java similarity index 90% rename from src/test/java/com/flowingcode/vaadin/addons/template/DemoView.java rename to src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/DemoView.java index a6a1d28..3b5cb8e 100644 --- a/src/test/java/com/flowingcode/vaadin/addons/template/DemoView.java +++ b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/DemoView.java @@ -18,7 +18,7 @@ * #L% */ -package com.flowingcode.vaadin.addons.template; +package com.flowingcode.vaadin.addons.syntaxhighlighter; import com.vaadin.flow.component.orderedlayout.VerticalLayout; import com.vaadin.flow.router.BeforeEnterEvent; @@ -31,6 +31,6 @@ public class DemoView extends VerticalLayout implements BeforeEnterObserver { @Override public void beforeEnter(BeforeEnterEvent event) { - event.forwardTo(TemplateDemoView.class); + event.forwardTo(SyntaxHighlighterDemoView.class); } } diff --git a/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterDemo.java b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterDemo.java new file mode 100644 index 0000000..395ab15 --- /dev/null +++ b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterDemo.java @@ -0,0 +1,62 @@ +package com.flowingcode.vaadin.addons.syntaxhighlighter; + +import com.flowingcode.vaadin.addons.demo.DemoSource; +import com.vaadin.flow.component.button.Button; +import com.vaadin.flow.component.checkbox.Checkbox; +import com.vaadin.flow.component.combobox.ComboBox; +import com.vaadin.flow.component.orderedlayout.HorizontalLayout; +import com.vaadin.flow.component.orderedlayout.VerticalLayout; +import com.vaadin.flow.component.textfield.TextArea; +import com.vaadin.flow.router.PageTitle; +import com.vaadin.flow.router.Route; + +@DemoSource +@PageTitle("Syntax Highlighter Add-on Demo") +@SuppressWarnings("serial") +@Route(value = "demo", layout = SyntaxHighlighterDemoView.class) +public class SyntaxHighlighterDemo extends VerticalLayout { + + public SyntaxHighlighterDemo() { + String defaultValue = "import { Prism as SyntaxHighlighter } from 'react-syntax-highlighter';\n" + // + "import { dark } from 'react-syntax-highlighter/dist/esm/styles/prism';\n" + // + "const Component = () => {\n" + // + " const codeString = '(num) => num + 1';\n" + // + " return (\n" + // + " \n" + // + " {codeString}\n" + // + " \n" + // + " );\n" + // + "};"; + SyntaxHighlighter sh = new SyntaxHighlighter(SHLanguage.JAVASCRIPT, SHStyle.A11YDARK, defaultValue, false, false); + sh.setSizeFull(); + ComboBox style = new ComboBox<>(); + style.setItems(SHStyle.values()); + style.addValueChangeListener(ev->{ + sh.setSHStyle(style.getValue()); + }); + style.setValue(SHStyle.IDEA); + ComboBox languages = new ComboBox<>(); + languages.setItems(SHLanguage.values()); + languages.setItemLabelGenerator(language->language.getName()); + languages.setValue(SHLanguage.TYPESCRIPT); + languages.addValueChangeListener(ev->{ + sh.setSHLanguage(ev.getValue()); + }); + Checkbox showLineNumbers = new Checkbox("Show Line Numbers"); + showLineNumbers.addValueChangeListener(ev->{ + sh.setShowLineNumbers(ev.getValue()); + }); + Checkbox wrapLines = new Checkbox("Wrap lines"); + wrapLines.addValueChangeListener(ev->{ + sh.setWrapLines(ev.getValue()); + }); + TextArea ta = new TextArea(); + ta.setValue(defaultValue); + ta.setWidthFull(); + Button button = new Button("Update code"); + button.addClickListener(ev->{ + sh.setContent(ta.getValue()); + }); + add(new HorizontalLayout(style,languages), showLineNumbers, wrapLines, sh, ta, button); + } +} diff --git a/src/test/java/com/flowingcode/vaadin/addons/template/TemplateDemoView.java b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterDemoView.java similarity index 74% rename from src/test/java/com/flowingcode/vaadin/addons/template/TemplateDemoView.java rename to src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterDemoView.java index 1c3aecd..565b2a1 100644 --- a/src/test/java/com/flowingcode/vaadin/addons/template/TemplateDemoView.java +++ b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterDemoView.java @@ -17,7 +17,7 @@ * limitations under the License. * #L% */ -package com.flowingcode.vaadin.addons.template; +package com.flowingcode.vaadin.addons.syntaxhighlighter; import com.flowingcode.vaadin.addons.DemoLayout; import com.flowingcode.vaadin.addons.GithubLink; @@ -27,12 +27,13 @@ @SuppressWarnings("serial") @ParentLayout(DemoLayout.class) -@Route("template") -@GithubLink("https://github.com/FlowingCode/AddonStarter24") -public class TemplateDemoView extends TabbedDemo { +@Route("basic") +@GithubLink("https://github.com/FlowingCode/SyntaxHighlighter") +public class SyntaxHighlighterDemoView extends TabbedDemo { - public TemplateDemoView() { - addDemo(TemplateDemo.class); + public SyntaxHighlighterDemoView() { + addDemo(SyntaxHighlighterDemo.class); + addDemo(SyntaxHighlighterPrismDemo.class); setSizeFull(); } } diff --git a/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrismDemo.java b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrismDemo.java new file mode 100644 index 0000000..2736a5d --- /dev/null +++ b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrismDemo.java @@ -0,0 +1,62 @@ +package com.flowingcode.vaadin.addons.syntaxhighlighter; + +import com.flowingcode.vaadin.addons.demo.DemoSource; +import com.vaadin.flow.component.button.Button; +import com.vaadin.flow.component.checkbox.Checkbox; +import com.vaadin.flow.component.combobox.ComboBox; +import com.vaadin.flow.component.orderedlayout.HorizontalLayout; +import com.vaadin.flow.component.orderedlayout.VerticalLayout; +import com.vaadin.flow.component.textfield.TextArea; +import com.vaadin.flow.router.PageTitle; +import com.vaadin.flow.router.Route; + +@DemoSource +@PageTitle("Syntax Highlighter Add-on Demo (Prism)") +@SuppressWarnings("serial") +@Route(value = "demo-prism", layout = SyntaxHighlighterDemoView.class) +public class SyntaxHighlighterPrismDemo extends VerticalLayout { + + public SyntaxHighlighterPrismDemo() { + String defaultValue = "import { Prism as SyntaxHighlighter } from 'react-syntax-highlighter';\n" + // + "import { dark } from 'react-syntax-highlighter/dist/esm/styles/prism';\n" + // + "const Component = () => {\n" + // + " const codeString = '(num) => num + 1';\n" + // + " return (\n" + // + " \n" + // + " {codeString}\n" + // + " \n" + // + " );\n" + // + "};"; + SyntaxHighlighterPrism sh = new SyntaxHighlighterPrism(SHLanguagePrism.JAVASCRIPT, SHStylePrism.A11YDARK, defaultValue, false, false); + sh.setSizeFull(); + ComboBox style = new ComboBox<>(); + style.setItems(SHStylePrism.values()); + style.addValueChangeListener(ev->{ + sh.setSHStyle(style.getValue()); + }); + style.setValue(SHStylePrism.A11YDARK); + ComboBox languages = new ComboBox<>(); + languages.setItems(SHLanguagePrism.values()); + languages.setItemLabelGenerator(language->language.getName()); + languages.setValue(SHLanguagePrism.TYPESCRIPT); + languages.addValueChangeListener(ev->{ + sh.setSHLanguage(ev.getValue()); + }); + Checkbox showLineNumbers = new Checkbox("Show Line Numbers"); + showLineNumbers.addValueChangeListener(ev->{ + sh.setShowLineNumbers(ev.getValue()); + }); + Checkbox wrapLines = new Checkbox("Wrap lines"); + wrapLines.addValueChangeListener(ev->{ + sh.setWrapLines(ev.getValue()); + }); + TextArea ta = new TextArea(); + ta.setValue(defaultValue); + ta.setWidthFull(); + Button button = new Button("Update code"); + button.addClickListener(ev->{ + sh.setContent(ta.getValue()); + }); + add(new HorizontalLayout(style,languages), showLineNumbers, wrapLines, sh, ta, button); + } +} diff --git a/src/test/java/com/flowingcode/vaadin/addons/template/it/AbstractViewTest.java b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/it/AbstractViewTest.java similarity index 98% rename from src/test/java/com/flowingcode/vaadin/addons/template/it/AbstractViewTest.java rename to src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/it/AbstractViewTest.java index c2fda15..a39b887 100644 --- a/src/test/java/com/flowingcode/vaadin/addons/template/it/AbstractViewTest.java +++ b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/it/AbstractViewTest.java @@ -18,7 +18,7 @@ * #L% */ -package com.flowingcode.vaadin.addons.template.it; +package com.flowingcode.vaadin.addons.syntaxhighlighter.it; import com.vaadin.testbench.ScreenshotOnFailureRule; import com.vaadin.testbench.TestBench; diff --git a/src/test/java/com/flowingcode/vaadin/addons/template/it/ViewIT.java b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/it/ViewIT.java similarity index 97% rename from src/test/java/com/flowingcode/vaadin/addons/template/it/ViewIT.java rename to src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/it/ViewIT.java index 16a2a12..82e76d6 100644 --- a/src/test/java/com/flowingcode/vaadin/addons/template/it/ViewIT.java +++ b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/it/ViewIT.java @@ -18,7 +18,7 @@ * #L% */ -package com.flowingcode.vaadin.addons.template.it; +package com.flowingcode.vaadin.addons.syntaxhighlighter.it; import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.not; diff --git a/src/test/java/com/flowingcode/vaadin/addons/template/test/SerializationTest.java b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/test/SerializationTest.java similarity index 89% rename from src/test/java/com/flowingcode/vaadin/addons/template/test/SerializationTest.java rename to src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/test/SerializationTest.java index dcf9b4e..579a961 100644 --- a/src/test/java/com/flowingcode/vaadin/addons/template/test/SerializationTest.java +++ b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/test/SerializationTest.java @@ -17,9 +17,8 @@ * limitations under the License. * #L% */ -package com.flowingcode.vaadin.addons.template.test; +package com.flowingcode.vaadin.addons.syntaxhighlighter.test; -import com.flowingcode.vaadin.addons.template.TemplateAddon; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; @@ -27,6 +26,7 @@ import java.io.ObjectOutputStream; import org.junit.Assert; import org.junit.Test; +import com.flowingcode.vaadin.addons.syntaxhighlighter.SyntaxHighlighter; public class SerializationTest { @@ -44,7 +44,7 @@ private void testSerializationOf(Object obj) throws IOException, ClassNotFoundEx @Test public void testSerialization() throws ClassNotFoundException, IOException { try { - testSerializationOf(new TemplateAddon()); + testSerializationOf(new SyntaxHighlighter()); } catch (Exception e) { Assert.fail("Problem while testing serialization: " + e.getMessage()); } diff --git a/src/test/java/com/flowingcode/vaadin/addons/template/TemplateDemo.java b/src/test/java/com/flowingcode/vaadin/addons/template/TemplateDemo.java deleted file mode 100644 index 5f6e6ee..0000000 --- a/src/test/java/com/flowingcode/vaadin/addons/template/TemplateDemo.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.flowingcode.vaadin.addons.template; - -import com.flowingcode.vaadin.addons.demo.DemoSource; -import com.vaadin.flow.component.html.Div; -import com.vaadin.flow.router.PageTitle; -import com.vaadin.flow.router.Route; - -@DemoSource -@PageTitle("Template Add-on Demo") -@SuppressWarnings("serial") -@Route(value = "demo", layout = TemplateDemoView.class) -public class TemplateDemo extends Div { - - public TemplateDemo() { - add(new TemplateAddon()); - } -} From f6385b96687a4244186cd4e0d5b90bf8c5198d5a Mon Sep 17 00:00:00 2001 From: Martin Lopez Date: Tue, 4 Jun 2024 18:14:38 -0300 Subject: [PATCH 02/41] build: update to Vaadin 24.4.0.beta5 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 9abd789..6410650 100644 --- a/pom.xml +++ b/pom.xml @@ -12,7 +12,7 @@ https://www.flowingcode.com/en/open-source/ - 24.4.0.beta1 + 24.4.0.beta5 4.10.0 17 17 From b070d2fcc6d57e7c2042eb3ec8812ffcbb4ccde3 Mon Sep 17 00:00:00 2001 From: Martin Lopez Date: Tue, 4 Jun 2024 18:16:12 -0300 Subject: [PATCH 03/41] fix: use stylename as the state name fix wrong initial styling caused by the use of style keyword --- .../vaadin/addons/syntaxhighlighter/SyntaxHighlighter.java | 4 ++-- .../addons/syntaxhighlighter/SyntaxHighlighterPrism.java | 4 ++-- .../resources/frontend/react-syntax-highlighter-prism.tsx | 4 ++-- .../resources/frontend/react-syntax-highlighter.tsx | 6 +++--- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighter.java b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighter.java index d005ab9..7e766fe 100644 --- a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighter.java +++ b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighter.java @@ -66,10 +66,10 @@ public void setSHLanguage(SHLanguage language) { } public SHStyle getSHStyle() { - return SHStyle.valueOf(getState("style", String.class)); + return SHStyle.valueOf(getState("stylename", String.class)); } public void setSHStyle(SHStyle style) { - setState("style", style.getName()); + setState("stylename", style.getName()); } public String getContent() { diff --git a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrism.java b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrism.java index ede2a91..526581b 100644 --- a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrism.java +++ b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrism.java @@ -66,10 +66,10 @@ public void setSHLanguage(SHLanguagePrism language) { } public SHStylePrism getSHStyle() { - return SHStylePrism.valueOf(getState("style", String.class)); + return SHStylePrism.valueOf(getState("stylename", String.class)); } public void setSHStyle(SHStylePrism style) { - setState("style", style.getName()); + setState("stylename", style.getName()); } public String getContent() { diff --git a/src/main/resources/META-INF/resources/frontend/react-syntax-highlighter-prism.tsx b/src/main/resources/META-INF/resources/frontend/react-syntax-highlighter-prism.tsx index f726082..a7c4a4e 100644 --- a/src/main/resources/META-INF/resources/frontend/react-syntax-highlighter-prism.tsx +++ b/src/main/resources/META-INF/resources/frontend/react-syntax-highlighter-prism.tsx @@ -9,13 +9,13 @@ class SyntaxHighlighterPrismElement extends ReactAdapterElement { protected override render(hooks: RenderHooks): ReactElement | null { const [language] = hooks.useState("language"); const [content] = hooks.useState("content"); - const [style] = hooks.useState("style"); + const [stylename] = hooks.useState("stylename"); const [showLineNumbers] = hooks.useState("showLineNumbers"); const [wrapLongLines] = hooks.useState("wrapLongLines"); return ("language"); const [content] = hooks.useState("content"); - const [style] = hooks.useState("style"); + const [stylename] = hooks.useState("stylename"); const [showLineNumbers] = hooks.useState("showLineNumbers"); const [wrapLongLines] = hooks.useState("wrapLongLines"); - + return Date: Tue, 4 Jun 2024 18:16:50 -0300 Subject: [PATCH 04/41] fix(demo): fix initial demo values --- .../addons/syntaxhighlighter/SyntaxHighlighterDemo.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterDemo.java b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterDemo.java index 395ab15..353d6b4 100644 --- a/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterDemo.java +++ b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterDemo.java @@ -34,11 +34,11 @@ public SyntaxHighlighterDemo() { style.addValueChangeListener(ev->{ sh.setSHStyle(style.getValue()); }); - style.setValue(SHStyle.IDEA); + style.setValue(SHStyle.A11YDARK); ComboBox languages = new ComboBox<>(); languages.setItems(SHLanguage.values()); languages.setItemLabelGenerator(language->language.getName()); - languages.setValue(SHLanguage.TYPESCRIPT); + languages.setValue(SHLanguage.JAVASCRIPT); languages.addValueChangeListener(ev->{ sh.setSHLanguage(ev.getValue()); }); From 7305e63c2b170fe66676b78c6de9fb99bf82102d Mon Sep 17 00:00:00 2001 From: Martin Lopez Date: Tue, 4 Jun 2024 18:17:18 -0300 Subject: [PATCH 05/41] fix: fix issue caused by null style initial value --- .../vaadin/addons/syntaxhighlighter/SyntaxHighlighter.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighter.java b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighter.java index 7e766fe..72851a0 100644 --- a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighter.java +++ b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighter.java @@ -33,7 +33,7 @@ public class SyntaxHighlighter extends ReactAdapterComponent implements HasSize { public SyntaxHighlighter() { - this(SHLanguage.JAVA, null ,"a11yDark", false, false); + this(SHLanguage.JAVA, SHStyle.A11YDARK ,"", false, false); } public SyntaxHighlighter(SHLanguage language, SHStyle style, String content, boolean showLineNumbers, boolean wrapLines) { From 863cfbea4e46e9799d902b428bb929bd7da50682 Mon Sep 17 00:00:00 2001 From: Martin Lopez Date: Tue, 4 Jun 2024 18:28:45 -0300 Subject: [PATCH 06/41] docs: update license headers --- .../addons/syntaxhighlighter/SHLanguage.java | 19 +++++++++++++++++ .../syntaxhighlighter/SHLanguagePrism.java | 19 +++++++++++++++++ .../addons/syntaxhighlighter/SHStyle.java | 19 +++++++++++++++++ .../syntaxhighlighter/SHStylePrism.java | 19 +++++++++++++++++ .../syntaxhighlighter/SyntaxHighlighter.java | 8 +++---- .../SyntaxHighlighterPrism.java | 8 +++---- .../flowingcode/vaadin/addons/DemoLayout.java | 8 +++---- .../addons/syntaxhighlighter/DemoView.java | 8 +++---- .../SyntaxHighlighterDemo.java | 19 +++++++++++++++++ .../SyntaxHighlighterDemoView.java | 8 +++---- .../SyntaxHighlighterPrismDemo.java | 19 +++++++++++++++++ .../it/AbstractViewTest.java | 8 +++---- .../addons/syntaxhighlighter/it/ViewIT.java | 8 +++---- .../test/SerializationTest.java | 8 +++---- .../frontend/styles/shared-styles.css | 21 ++++++++++++++++++- 15 files changed, 166 insertions(+), 33 deletions(-) diff --git a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SHLanguage.java b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SHLanguage.java index 37d838e..79043b3 100644 --- a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SHLanguage.java +++ b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SHLanguage.java @@ -1,3 +1,22 @@ +/*- + * #%L + * Syntax Highlighter Add-on + * %% + * Copyright (C) 2024 Flowing Code + * %% + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ package com.flowingcode.vaadin.addons.syntaxhighlighter; public enum SHLanguage { diff --git a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SHLanguagePrism.java b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SHLanguagePrism.java index 524adcd..e219b0e 100644 --- a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SHLanguagePrism.java +++ b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SHLanguagePrism.java @@ -1,3 +1,22 @@ +/*- + * #%L + * Syntax Highlighter Add-on + * %% + * Copyright (C) 2024 Flowing Code + * %% + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ package com.flowingcode.vaadin.addons.syntaxhighlighter; public enum SHLanguagePrism { diff --git a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SHStyle.java b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SHStyle.java index 83fcb44..cd833b5 100644 --- a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SHStyle.java +++ b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SHStyle.java @@ -1,3 +1,22 @@ +/*- + * #%L + * Syntax Highlighter Add-on + * %% + * Copyright (C) 2024 Flowing Code + * %% + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ package com.flowingcode.vaadin.addons.syntaxhighlighter; public enum SHStyle { diff --git a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SHStylePrism.java b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SHStylePrism.java index 41643ff..6f9638e 100644 --- a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SHStylePrism.java +++ b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SHStylePrism.java @@ -1,3 +1,22 @@ +/*- + * #%L + * Syntax Highlighter Add-on + * %% + * Copyright (C) 2024 Flowing Code + * %% + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ package com.flowingcode.vaadin.addons.syntaxhighlighter; public enum SHStylePrism { diff --git a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighter.java b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighter.java index 72851a0..6ca3125 100644 --- a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighter.java +++ b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighter.java @@ -1,15 +1,15 @@ /*- * #%L - * Template Add-on + * Syntax Highlighter Add-on * %% - * Copyright (C) 2023 Flowing Code + * Copyright (C) 2024 Flowing Code * %% * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrism.java b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrism.java index 526581b..3697b56 100644 --- a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrism.java +++ b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrism.java @@ -1,15 +1,15 @@ /*- * #%L - * Template Add-on + * Syntax Highlighter Add-on * %% - * Copyright (C) 2023 Flowing Code + * Copyright (C) 2024 Flowing Code * %% * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/test/java/com/flowingcode/vaadin/addons/DemoLayout.java b/src/test/java/com/flowingcode/vaadin/addons/DemoLayout.java index 8d29aba..1dd2b87 100644 --- a/src/test/java/com/flowingcode/vaadin/addons/DemoLayout.java +++ b/src/test/java/com/flowingcode/vaadin/addons/DemoLayout.java @@ -1,15 +1,15 @@ /*- * #%L - * Template Add-on + * Syntax Highlighter Add-on * %% - * Copyright (C) 2023 Flowing Code + * Copyright (C) 2024 Flowing Code * %% * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/DemoView.java b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/DemoView.java index 3b5cb8e..f7df9e7 100644 --- a/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/DemoView.java +++ b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/DemoView.java @@ -1,15 +1,15 @@ /*- * #%L - * Template Add-on + * Syntax Highlighter Add-on * %% - * Copyright (C) 2023 Flowing Code + * Copyright (C) 2024 Flowing Code * %% * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterDemo.java b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterDemo.java index 353d6b4..7deafd4 100644 --- a/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterDemo.java +++ b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterDemo.java @@ -1,3 +1,22 @@ +/*- + * #%L + * Syntax Highlighter Add-on + * %% + * Copyright (C) 2024 Flowing Code + * %% + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ package com.flowingcode.vaadin.addons.syntaxhighlighter; import com.flowingcode.vaadin.addons.demo.DemoSource; diff --git a/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterDemoView.java b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterDemoView.java index 565b2a1..6c1410f 100644 --- a/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterDemoView.java +++ b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterDemoView.java @@ -1,15 +1,15 @@ /*- * #%L - * Template Add-on + * Syntax Highlighter Add-on * %% - * Copyright (C) 2023 Flowing Code + * Copyright (C) 2024 Flowing Code * %% * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrismDemo.java b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrismDemo.java index 2736a5d..35837c0 100644 --- a/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrismDemo.java +++ b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrismDemo.java @@ -1,3 +1,22 @@ +/*- + * #%L + * Syntax Highlighter Add-on + * %% + * Copyright (C) 2024 Flowing Code + * %% + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ package com.flowingcode.vaadin.addons.syntaxhighlighter; import com.flowingcode.vaadin.addons.demo.DemoSource; diff --git a/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/it/AbstractViewTest.java b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/it/AbstractViewTest.java index a39b887..f493290 100644 --- a/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/it/AbstractViewTest.java +++ b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/it/AbstractViewTest.java @@ -1,15 +1,15 @@ /*- * #%L - * Template Add-on + * Syntax Highlighter Add-on * %% - * Copyright (C) 2023 Flowing Code + * Copyright (C) 2024 Flowing Code * %% * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/it/ViewIT.java b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/it/ViewIT.java index 82e76d6..7e51b26 100644 --- a/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/it/ViewIT.java +++ b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/it/ViewIT.java @@ -1,15 +1,15 @@ /*- * #%L - * Template Add-on + * Syntax Highlighter Add-on * %% - * Copyright (C) 2023 Flowing Code + * Copyright (C) 2024 Flowing Code * %% * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/test/SerializationTest.java b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/test/SerializationTest.java index 579a961..6ed7c0f 100644 --- a/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/test/SerializationTest.java +++ b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/test/SerializationTest.java @@ -1,15 +1,15 @@ /*- * #%L - * Template Add-on + * Syntax Highlighter Add-on * %% - * Copyright (C) 2023 Flowing Code + * Copyright (C) 2024 Flowing Code * %% * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/src/test/resources/META-INF/frontend/styles/shared-styles.css b/src/test/resources/META-INF/frontend/styles/shared-styles.css index 6680e2d..d493937 100644 --- a/src/test/resources/META-INF/frontend/styles/shared-styles.css +++ b/src/test/resources/META-INF/frontend/styles/shared-styles.css @@ -1 +1,20 @@ -/*Demo styles*/ \ No newline at end of file +/*- + * #%L + * Syntax Highlighter Add-on + * %% + * Copyright (C) 2024 Flowing Code + * %% + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ +/*Demo styles*/ From ac113f002d2cb81fd39b5e6c84887285135503eb Mon Sep 17 00:00:00 2001 From: Martin Lopez Date: Tue, 4 Jun 2024 18:29:09 -0300 Subject: [PATCH 07/41] docs: update license header --- src/main/frontend/index.html | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/main/frontend/index.html b/src/main/frontend/index.html index d36e593..282cf05 100644 --- a/src/main/frontend/index.html +++ b/src/main/frontend/index.html @@ -1,4 +1,24 @@ + + From 8de2dd28f3734f5bea82c10a3b651de560a568d8 Mon Sep 17 00:00:00 2001 From: Martin Lopez Date: Tue, 4 Jun 2024 18:29:56 -0300 Subject: [PATCH 08/41] build: fix addon name in scm section --- pom.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pom.xml b/pom.xml index 6410650..f8bd74a 100644 --- a/pom.xml +++ b/pom.xml @@ -39,9 +39,9 @@ - https://github.com/FlowingCode/AddonStarter24 - scm:git:git://github.com/FlowingCode/AddonStarter24.git - scm:git:ssh://git@github.com:/FlowingCode/AddonStarter24.git + https://github.com/FlowingCode/SyntaxHighlighter + scm:git:git://github.com/FlowingCode/SyntaxHighlighter.git + scm:git:ssh://git@github.com:/FlowingCode/SyntaxHighlighter.git master From d8515e1a0cd11fbc8aff5f32a2c039783ff61219 Mon Sep 17 00:00:00 2001 From: Martin Lopez Date: Tue, 4 Jun 2024 18:30:12 -0300 Subject: [PATCH 09/41] build: fix inception year --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index f8bd74a..a30012e 100644 --- a/pom.xml +++ b/pom.xml @@ -29,7 +29,7 @@ https://www.flowingcode.com - 2023 + 2024 Apache 2 From c49c77b774da50add411bd7b6d556ce95bd48caf Mon Sep 17 00:00:00 2001 From: Martin Lopez Date: Tue, 4 Jun 2024 18:30:27 -0300 Subject: [PATCH 10/41] build: fix group id --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index a30012e..7c78648 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - com.flowingcode.vaadin.addons + org.vaadin.addons.flowingcode syntax-highlighter-addon 1.0.0-SNAPSHOT Syntax Highlighter Add-on From 90040016ed3080f23c46be9735c0f9efbcb347d9 Mon Sep 17 00:00:00 2001 From: Martin Lopez Date: Tue, 4 Jun 2024 18:35:45 -0300 Subject: [PATCH 11/41] docs: replace README default values with correct ones --- README.md | 39 +++++++++++++++++++++++++-------------- 1 file changed, 25 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 44743af..fc73cb3 100644 --- a/README.md +++ b/README.md @@ -1,23 +1,24 @@ -[![Published on Vaadin Directory](https://img.shields.io/badge/Vaadin%20Directory-published-00b4f0.svg)](https://vaadin.com/directory/component/template-addon) -[![Stars on vaadin.com/directory](https://img.shields.io/vaadin-directory/star/template-addon.svg)](https://vaadin.com/directory/component/template-addon) -[![Build Status](https://jenkins.flowingcode.com/job/template-addon/badge/icon)](https://jenkins.flowingcode.com/job/template-addon) -[![Maven Central](https://img.shields.io/maven-central/v/com.flowingcode.vaadin.addons/template-addon)](https://mvnrepository.com/artifact/com.flowingcode.vaadin.addons/template-addon) +[![Published on Vaadin Directory](https://img.shields.io/badge/Vaadin%20Directory-published-00b4f0.svg)](https://vaadin.com/directory/component/syntax-highlighter-addon) +[![Stars on vaadin.com/directory](https://img.shields.io/vaadin-directory/star/syntax-highlighter-addon.svg)](https://vaadin.com/directory/component/syntax-highlighter-addon) +[![Build Status](https://jenkins.flowingcode.com/job/syntax-highlighter-addon/badge/icon)](https://jenkins.flowingcode.com/job/syntax-highlighter-addon) +[![Maven Central](https://img.shields.io/maven-central/v/org.vaadin.addons.flowingcode/syntax-highlighter-addon)](https://mvnrepository.com/artifact/org.vaadin.addons.flowingcode/template-addon) -# Template Add-on +# SyntaxHighlighter Add-on -This is a template project for building new Vaadin 24 add-ons +This is a wrapper around the [React Syntax Highlighter](https://github.com/react-syntax-highlighter/react-syntax-highlighter) component ## Features -* List the features of your add-on in here +* Supports both hljs and prism modes +* Enums with styles and languages ## Online demo -[Online demo here](http://addonsv24.flowingcode.com/template) +[Online demo here](http://addonsv24.flowingcode.com/syntax-highlighter) ## Download release -[Available in Vaadin Directory](https://vaadin.com/directory/component/template-addon) +[Available in Vaadin Directory](https://vaadin.com/directory/component/syntax-highlighter-addon) ### Maven install @@ -25,8 +26,8 @@ Add the following dependencies in your pom.xml file: ```xml - com.flowingcode.vaadin.addons - template-addon + org.vaadin.addons.flowingcode + syntax-highlighter-addon X.Y.Z ``` @@ -50,7 +51,7 @@ To see the demo, navigate to http://localhost:8080/ ## Release notes -See [here](https://github.com/FlowingCode/TemplateAddon/releases) +See [here](https://github.com/FlowingCode/SyntaxHighlighter/releases) ## Issue tracking @@ -75,13 +76,23 @@ Then, follow these steps for creating a contribution: This add-on is distributed under Apache License 2.0. For license terms, see LICENSE.txt. -TEMPLATE_ADDON is written by Flowing Code S.A. +SyntaxHighlighter Addon is written by Flowing Code S.A. # Developer Guide ## Getting started -Add your code samples in this section +You can instantiate the add-on by using the following syntax: + + SyntaxHighlighter sh = new SyntaxHighlighter(SHLanguage.JAVASCRIPT, SHStyle.A11YDARK, defaultValue, false, false); + +You can also change the style and language by calling the appropriate getters: + + sh.setSHLanguage(SHLanguage.JAVASCRIPT); + +The same with the styling: + + sh.setSHStyle(SHStyle.A11YDARK); ## Special configuration when using Spring From 1719ec26ce81031b4896d67078acce02de3e9653 Mon Sep 17 00:00:00 2001 From: Martin Lopez Date: Tue, 4 Jun 2024 18:57:04 -0300 Subject: [PATCH 12/41] docs: add javadocs --- .../syntaxhighlighter/SyntaxHighlighter.java | 22 +++++++++++++++++-- .../SyntaxHighlighterPrism.java | 16 ++++++++++++++ 2 files changed, 36 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighter.java b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighter.java index 6ca3125..0a5a01d 100644 --- a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighter.java +++ b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighter.java @@ -26,16 +26,34 @@ import com.vaadin.flow.component.dependency.NpmPackage; import com.vaadin.flow.component.react.ReactAdapterComponent; +/** + * A Vaadin component that wraps the react-syntax-highlighter library to provide syntax highlighting for code snippets. + * + * @author mlopezFC + * @since 1.0.0 + */ @SuppressWarnings("serial") @NpmPackage(value = "react-syntax-highlighter", version = "15.5.0") @JsModule("./react-syntax-highlighter.tsx") @Tag("syntax-highlighter") public class SyntaxHighlighter extends ReactAdapterComponent implements HasSize { + /** + * Constructs a new SyntaxHighlighter with default settings. + */ public SyntaxHighlighter() { this(SHLanguage.JAVA, SHStyle.A11YDARK ,"", false, false); } + /** + * Constructs a new SyntaxHighlighter with the specified settings. + * + * @param language The programming language to highlight. + * @param style The style to apply to the highlighted code. + * @param content The code content to highlight. + * @param showLineNumbers Whether to show line numbers. + * @param wrapLines Whether to wrap lines. + */ public SyntaxHighlighter(SHLanguage language, SHStyle style, String content, boolean showLineNumbers, boolean wrapLines) { setSHStyle(style); setSHLanguage(language); @@ -59,14 +77,14 @@ public void setShowLineNumbers(boolean showLineNumbers) { } public SHLanguage getSHLanguage() { - return SHLanguage.valueOf(getState("language", String.class)); + return SHLanguage.valueOf(getState("language", String.class).toUpperCase()); } public void setSHLanguage(SHLanguage language) { setState("language", language.getName()); } public SHStyle getSHStyle() { - return SHStyle.valueOf(getState("stylename", String.class)); + return SHStyle.valueOf(getState("stylename", String.class).toUpperCase()); } public void setSHStyle(SHStyle style) { setState("stylename", style.getName()); diff --git a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrism.java b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrism.java index 3697b56..77c62be 100644 --- a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrism.java +++ b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrism.java @@ -26,6 +26,13 @@ import com.vaadin.flow.component.dependency.NpmPackage; import com.vaadin.flow.component.react.ReactAdapterComponent; +/** + * A Vaadin component that wraps the react-syntax-highlighter library to provide syntax highlighting for code snippets. + * Prism implementation + * + * @author mlopezFC + * @since 1.0.0 + */ @SuppressWarnings("serial") @NpmPackage(value = "react-syntax-highlighter", version = "15.5.0") @JsModule("./react-syntax-highlighter-prism.tsx") @@ -36,6 +43,15 @@ public SyntaxHighlighterPrism() { this(SHLanguagePrism.JAVA, null ,"a11yDark", false, false); } + /** + * Constructs a new SyntaxHighlighter with the specified settings. + * + * @param language The programming language to highlight. + * @param style The style to apply to the highlighted code. + * @param content The code content to highlight. + * @param showLineNumbers Whether to show line numbers. + * @param wrapLines Whether to wrap lines. + */ public SyntaxHighlighterPrism(SHLanguagePrism language, SHStylePrism style, String content, boolean showLineNumbers, boolean wrapLines) { setSHStyle(style); setSHLanguage(language); From 042f5b6b7676457d5e4a30441abd852bccaacc4e Mon Sep 17 00:00:00 2001 From: Martin Lopez Date: Tue, 4 Jun 2024 19:02:53 -0300 Subject: [PATCH 13/41] fix: use correct default style and content --- .../addons/syntaxhighlighter/SyntaxHighlighterPrism.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrism.java b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrism.java index 77c62be..889d2e9 100644 --- a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrism.java +++ b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrism.java @@ -40,7 +40,7 @@ public class SyntaxHighlighterPrism extends ReactAdapterComponent implements HasSize { public SyntaxHighlighterPrism() { - this(SHLanguagePrism.JAVA, null ,"a11yDark", false, false); + this(SHLanguagePrism.JAVA, SHStylePrism.A11YDARK ,"", false, false); } /** @@ -75,14 +75,14 @@ public void setShowLineNumbers(boolean showLineNumbers) { } public SHLanguagePrism getSHLanguage() { - return SHLanguagePrism.valueOf(getState("language", String.class)); + return SHLanguagePrism.valueOf(getState("language", String.class).toUpperCase()); } public void setSHLanguage(SHLanguagePrism language) { setState("language", language.getName()); } public SHStylePrism getSHStyle() { - return SHStylePrism.valueOf(getState("stylename", String.class)); + return SHStylePrism.valueOf(getState("stylename", String.class).toUpperCase()); } public void setSHStyle(SHStylePrism style) { setState("stylename", style.getName()); From c63e770bb62cf3bae56b6598d199dfdd500a1a67 Mon Sep 17 00:00:00 2001 From: Martin Lopez Date: Tue, 4 Jun 2024 19:03:10 -0300 Subject: [PATCH 14/41] test: add basic unit testing --- .../test/SyntaxHighlighterPrismTest.java | 55 +++++++++++++++++++ .../test/SyntaxHighlighterTest.java | 55 +++++++++++++++++++ 2 files changed, 110 insertions(+) create mode 100644 src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/test/SyntaxHighlighterPrismTest.java create mode 100644 src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/test/SyntaxHighlighterTest.java diff --git a/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/test/SyntaxHighlighterPrismTest.java b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/test/SyntaxHighlighterPrismTest.java new file mode 100644 index 0000000..5ae79a8 --- /dev/null +++ b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/test/SyntaxHighlighterPrismTest.java @@ -0,0 +1,55 @@ +package com.flowingcode.vaadin.addons.syntaxhighlighter.test; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; +import com.flowingcode.vaadin.addons.syntaxhighlighter.SHLanguagePrism; +import com.flowingcode.vaadin.addons.syntaxhighlighter.SHStylePrism; +import com.flowingcode.vaadin.addons.syntaxhighlighter.SyntaxHighlighterPrism; +import org.junit.Before; +import org.junit.Test; + +public class SyntaxHighlighterPrismTest { + + private SyntaxHighlighterPrism syntaxHighlighter; + + @Before + public void setUp() { + syntaxHighlighter = new SyntaxHighlighterPrism(); + } + + @Test + public void testDefaultConstructor() { + assertEquals(SHLanguagePrism.JAVA, syntaxHighlighter.getSHLanguage()); + assertEquals(SHStylePrism.A11YDARK, syntaxHighlighter.getSHStyle()); + assertEquals("", syntaxHighlighter.getContent()); + assertFalse(syntaxHighlighter.isShowLineNumbers()); + assertFalse(syntaxHighlighter.isWrapLines()); + } + + @Test + public void testParameterizedConstructor() { + SyntaxHighlighterPrism sh = new SyntaxHighlighterPrism(SHLanguagePrism.JAVASCRIPT, + SHStylePrism.DUOTONEDARK, "test", true, true); + assertEquals(SHLanguagePrism.JAVASCRIPT, sh.getSHLanguage()); + assertEquals(SHStylePrism.DUOTONEDARK, sh.getSHStyle()); + assertEquals("test", sh.getContent()); + assertTrue(sh.isShowLineNumbers()); + assertTrue(sh.isWrapLines()); + } + + @Test + public void testSettersAndGetters() { + syntaxHighlighter.setSHLanguage(SHLanguagePrism.PYTHON); + syntaxHighlighter.setSHStyle(SHStylePrism.A11YDARK); + syntaxHighlighter.setContent("test content"); + syntaxHighlighter.setShowLineNumbers(true); + syntaxHighlighter.setWrapLines(true); + + assertEquals(SHLanguagePrism.PYTHON, syntaxHighlighter.getSHLanguage()); + assertEquals(SHStylePrism.A11YDARK, syntaxHighlighter.getSHStyle()); + assertEquals("test content", syntaxHighlighter.getContent()); + assertTrue(syntaxHighlighter.isShowLineNumbers()); + assertTrue(syntaxHighlighter.isWrapLines()); + } +} diff --git a/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/test/SyntaxHighlighterTest.java b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/test/SyntaxHighlighterTest.java new file mode 100644 index 0000000..cccf44a --- /dev/null +++ b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/test/SyntaxHighlighterTest.java @@ -0,0 +1,55 @@ +package com.flowingcode.vaadin.addons.syntaxhighlighter.test; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; +import com.flowingcode.vaadin.addons.syntaxhighlighter.SHLanguage; +import com.flowingcode.vaadin.addons.syntaxhighlighter.SHStyle; +import com.flowingcode.vaadin.addons.syntaxhighlighter.SyntaxHighlighter; +import org.junit.Before; +import org.junit.Test; + +public class SyntaxHighlighterTest { + + private SyntaxHighlighter syntaxHighlighter; + + @Before + public void setUp() { + syntaxHighlighter = new SyntaxHighlighter(); + } + + @Test + public void testDefaultConstructor() { + assertEquals(SHLanguage.JAVA, syntaxHighlighter.getSHLanguage()); + assertEquals(SHStyle.A11YDARK, syntaxHighlighter.getSHStyle()); + assertEquals("", syntaxHighlighter.getContent()); + assertFalse(syntaxHighlighter.isShowLineNumbers()); + assertFalse(syntaxHighlighter.isWrapLines()); + } + + @Test + public void testParameterizedConstructor() { + SyntaxHighlighter sh = + new SyntaxHighlighter(SHLanguage.JAVASCRIPT, SHStyle.ANDROIDSTUDIO, "test", true, true); + assertEquals(SHLanguage.JAVASCRIPT, sh.getSHLanguage()); + assertEquals(SHStyle.ANDROIDSTUDIO, sh.getSHStyle()); + assertEquals("test", sh.getContent()); + assertTrue(sh.isShowLineNumbers()); + assertTrue(sh.isWrapLines()); + } + + @Test + public void testSettersAndGetters() { + syntaxHighlighter.setSHLanguage(SHLanguage.PYTHON); + syntaxHighlighter.setSHStyle(SHStyle.A11YDARK); + syntaxHighlighter.setContent("test content"); + syntaxHighlighter.setShowLineNumbers(true); + syntaxHighlighter.setWrapLines(true); + + assertEquals(SHLanguage.PYTHON, syntaxHighlighter.getSHLanguage()); + assertEquals(SHStyle.A11YDARK, syntaxHighlighter.getSHStyle()); + assertEquals("test content", syntaxHighlighter.getContent()); + assertTrue(syntaxHighlighter.isShowLineNumbers()); + assertTrue(syntaxHighlighter.isWrapLines()); + } +} From ec5cc99177f205c2ced94d5dad43adcfbc6d1f0d Mon Sep 17 00:00:00 2001 From: Martin Lopez Date: Tue, 30 Jul 2024 17:05:08 -0300 Subject: [PATCH 15/41] build: use correct group id --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 7c78648..a30012e 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - org.vaadin.addons.flowingcode + com.flowingcode.vaadin.addons syntax-highlighter-addon 1.0.0-SNAPSHOT Syntax Highlighter Add-on From 5bae5725e5b524363e27345f1a1dbfa41c1114b9 Mon Sep 17 00:00:00 2001 From: Martin Lopez Date: Tue, 30 Jul 2024 17:06:56 -0300 Subject: [PATCH 16/41] docs: fix Maven Central badge --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index fc73cb3..8715ade 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ [![Published on Vaadin Directory](https://img.shields.io/badge/Vaadin%20Directory-published-00b4f0.svg)](https://vaadin.com/directory/component/syntax-highlighter-addon) [![Stars on vaadin.com/directory](https://img.shields.io/vaadin-directory/star/syntax-highlighter-addon.svg)](https://vaadin.com/directory/component/syntax-highlighter-addon) [![Build Status](https://jenkins.flowingcode.com/job/syntax-highlighter-addon/badge/icon)](https://jenkins.flowingcode.com/job/syntax-highlighter-addon) -[![Maven Central](https://img.shields.io/maven-central/v/org.vaadin.addons.flowingcode/syntax-highlighter-addon)](https://mvnrepository.com/artifact/org.vaadin.addons.flowingcode/template-addon) +[![Maven Central](https://img.shields.io/maven-central/v/org.vaadin.addons.flowingcode/syntax-highlighter-addon)](https://mvnrepository.com/artifact/com.flowingcode.vaadin.addons/syntax-highlighter-addon) # SyntaxHighlighter Add-on From 33b36feb24eb287af863001b6e96903e52dc104b Mon Sep 17 00:00:00 2001 From: Martin Lopez Date: Tue, 30 Jul 2024 17:07:58 -0300 Subject: [PATCH 17/41] docs: fix spelling of add-on --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 8715ade..8668f54 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ Add the following dependencies in your pom.xml file: ```xml - org.vaadin.addons.flowingcode + com.flowingcode.vaadin.addons syntax-highlighter-addon X.Y.Z @@ -76,7 +76,7 @@ Then, follow these steps for creating a contribution: This add-on is distributed under Apache License 2.0. For license terms, see LICENSE.txt. -SyntaxHighlighter Addon is written by Flowing Code S.A. +SyntaxHighlighter Add-on is written by Flowing Code S.A. # Developer Guide From 4eb83d2ab3c0bca5ea4a4fac89d137a96d8d2ab0 Mon Sep 17 00:00:00 2001 From: Martin Lopez Date: Tue, 30 Jul 2024 17:09:07 -0300 Subject: [PATCH 18/41] test: use correct tag name --- .../flowingcode/vaadin/addons/syntaxhighlighter/it/ViewIT.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/it/ViewIT.java b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/it/ViewIT.java index 7e51b26..c536984 100644 --- a/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/it/ViewIT.java +++ b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/it/ViewIT.java @@ -58,7 +58,7 @@ protected boolean matchesSafely(TestBenchElement item, Description mismatchDescr @Test public void componentWorks() { - TestBenchElement element = $("paper-input").first(); + TestBenchElement element = $("syntax-highlighter").first(); assertThat(element, hasBeenUpgradedToCustomElement); } } From 01397eae0943e0c8ebc87af1131e857c95ef1a1e Mon Sep 17 00:00:00 2001 From: Martin Lopez Date: Tue, 30 Jul 2024 17:10:02 -0300 Subject: [PATCH 19/41] docs: fix vaadin directory badges --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 8668f54..c73f989 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ -[![Published on Vaadin Directory](https://img.shields.io/badge/Vaadin%20Directory-published-00b4f0.svg)](https://vaadin.com/directory/component/syntax-highlighter-addon) -[![Stars on vaadin.com/directory](https://img.shields.io/vaadin-directory/star/syntax-highlighter-addon.svg)](https://vaadin.com/directory/component/syntax-highlighter-addon) +[![Published on Vaadin Directory](https://img.shields.io/badge/Vaadin%20Directory-published-00b4f0.svg)](https://vaadin.com/directory/component/syntax-highlighter-add-on) +[![Stars on vaadin.com/directory](https://img.shields.io/vaadin-directory/star/syntax-highlighter-addon.svg)](https://vaadin.com/directory/component/syntax-highlighter-add-on) [![Build Status](https://jenkins.flowingcode.com/job/syntax-highlighter-addon/badge/icon)](https://jenkins.flowingcode.com/job/syntax-highlighter-addon) [![Maven Central](https://img.shields.io/maven-central/v/org.vaadin.addons.flowingcode/syntax-highlighter-addon)](https://mvnrepository.com/artifact/com.flowingcode.vaadin.addons/syntax-highlighter-addon) From 19841b07d1eb67ada9a86d35ed2eb7325d462a5d Mon Sep 17 00:00:00 2001 From: Martin Lopez Date: Tue, 30 Jul 2024 17:10:45 -0300 Subject: [PATCH 20/41] docs: fix vaadin directory url --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c73f989..d71febe 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ This is a wrapper around the [React Syntax Highlighter](https://github.com/react ## Download release -[Available in Vaadin Directory](https://vaadin.com/directory/component/syntax-highlighter-addon) +[Available in Vaadin Directory](https://vaadin.com/directory/component/syntax-highlighter-add-on) ### Maven install From 60be80195d18fdc99f4b82f6a7bfde780287736b Mon Sep 17 00:00:00 2001 From: Martin Lopez Date: Tue, 30 Jul 2024 17:16:56 -0300 Subject: [PATCH 21/41] docs: add javadoc for enums --- .../vaadin/addons/syntaxhighlighter/SHLanguage.java | 6 ++++++ .../vaadin/addons/syntaxhighlighter/SHLanguagePrism.java | 7 +++++++ .../vaadin/addons/syntaxhighlighter/SHStyle.java | 6 ++++++ .../vaadin/addons/syntaxhighlighter/SHStylePrism.java | 7 +++++++ 4 files changed, 26 insertions(+) diff --git a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SHLanguage.java b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SHLanguage.java index 79043b3..cde2608 100644 --- a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SHLanguage.java +++ b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SHLanguage.java @@ -19,6 +19,12 @@ */ package com.flowingcode.vaadin.addons.syntaxhighlighter; +/** + * Enum representing different programming languages supported by Syntax Highlighter. + * + * @author mlopezFC + * @since 1.0.0 + */ public enum SHLanguage { ONEC("oneC"), diff --git a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SHLanguagePrism.java b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SHLanguagePrism.java index e219b0e..eb48b34 100644 --- a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SHLanguagePrism.java +++ b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SHLanguagePrism.java @@ -19,6 +19,13 @@ */ package com.flowingcode.vaadin.addons.syntaxhighlighter; +/** + * Enum representing different programming languages supported by the Syntax Highlighter. + * Used only with Prism implementation + * + * @author mlopezFC + * @since 1.0.0 + */ public enum SHLanguagePrism { ACTIONSCRIPT("actionscript"), diff --git a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SHStyle.java b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SHStyle.java index cd833b5..fccd655 100644 --- a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SHStyle.java +++ b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SHStyle.java @@ -19,6 +19,12 @@ */ package com.flowingcode.vaadin.addons.syntaxhighlighter; +/** + * Enum representing different styles supported by the Syntax Highlighter. + * + * @author mlopezFC + * @since 1.0.0 + */ public enum SHStyle { A11YDARK("a11yDark"), diff --git a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SHStylePrism.java b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SHStylePrism.java index 6f9638e..2b08455 100644 --- a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SHStylePrism.java +++ b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SHStylePrism.java @@ -19,6 +19,13 @@ */ package com.flowingcode.vaadin.addons.syntaxhighlighter; +/** + * Enum representing different styles supported by the Syntax Highlighter. + * Used only with Prism implementation + * + * @author mlopezFC + * @since 1.0.0 + */ public enum SHStylePrism { COY("coy"), From 5732a7888b40f8c3b66d8ee5e32a9ebb69c86e6a Mon Sep 17 00:00:00 2001 From: Martin Lopez Date: Tue, 30 Jul 2024 17:39:10 -0300 Subject: [PATCH 22/41] fix: correct routes to make them similar to other addons --- .../vaadin/addons/syntaxhighlighter/SyntaxHighlighterDemo.java | 2 +- .../addons/syntaxhighlighter/SyntaxHighlighterDemoView.java | 2 +- .../addons/syntaxhighlighter/SyntaxHighlighterPrismDemo.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterDemo.java b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterDemo.java index 7deafd4..acf21bf 100644 --- a/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterDemo.java +++ b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterDemo.java @@ -32,7 +32,7 @@ @DemoSource @PageTitle("Syntax Highlighter Add-on Demo") @SuppressWarnings("serial") -@Route(value = "demo", layout = SyntaxHighlighterDemoView.class) +@Route(value = "syntax-highlighter/basic", layout = SyntaxHighlighterDemoView.class) public class SyntaxHighlighterDemo extends VerticalLayout { public SyntaxHighlighterDemo() { diff --git a/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterDemoView.java b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterDemoView.java index 6c1410f..0bbce50 100644 --- a/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterDemoView.java +++ b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterDemoView.java @@ -27,7 +27,7 @@ @SuppressWarnings("serial") @ParentLayout(DemoLayout.class) -@Route("basic") +@Route("syntax-highlighter") @GithubLink("https://github.com/FlowingCode/SyntaxHighlighter") public class SyntaxHighlighterDemoView extends TabbedDemo { diff --git a/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrismDemo.java b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrismDemo.java index 35837c0..6ca0a63 100644 --- a/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrismDemo.java +++ b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrismDemo.java @@ -32,7 +32,7 @@ @DemoSource @PageTitle("Syntax Highlighter Add-on Demo (Prism)") @SuppressWarnings("serial") -@Route(value = "demo-prism", layout = SyntaxHighlighterDemoView.class) +@Route(value = "syntax-highlighter/prism", layout = SyntaxHighlighterDemoView.class) public class SyntaxHighlighterPrismDemo extends VerticalLayout { public SyntaxHighlighterPrismDemo() { From b8b1d25824005932e9dca515b376a04c72ea0232 Mon Sep 17 00:00:00 2001 From: Martin Lopez Date: Tue, 30 Jul 2024 17:42:03 -0300 Subject: [PATCH 23/41] build: use latest commons demo version --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index a30012e..92211e7 100644 --- a/pom.xml +++ b/pom.xml @@ -12,7 +12,7 @@ https://www.flowingcode.com/en/open-source/ - 24.4.0.beta5 + 24.4.7 4.10.0 17 17 @@ -20,7 +20,7 @@ UTF-8 ${project.basedir}/drivers 11.0.12 - 3.9.0 + 4.1.0 true From 029378f56fd29b0497be8aa15c6d9c2ddb8e4aa9 Mon Sep 17 00:00:00 2001 From: Martin Lopez Date: Wed, 31 Jul 2024 08:22:30 -0300 Subject: [PATCH 24/41] chore: replace addon name in ISSUE_TEMPLATE --- .github/ISSUE_TEMPLATE/bug-report.yml | 2 +- .github/ISSUE_TEMPLATE/feature-request.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug-report.yml b/.github/ISSUE_TEMPLATE/bug-report.yml index f272a72..232ec1b 100644 --- a/.github/ISSUE_TEMPLATE/bug-report.yml +++ b/.github/ISSUE_TEMPLATE/bug-report.yml @@ -1,5 +1,5 @@ name: Bug Report -description: Please report issues related to X add-on here. +description: Please report issues related to Syntax Highlighter add-on here. body: - type: textarea id: problem-description diff --git a/.github/ISSUE_TEMPLATE/feature-request.yml b/.github/ISSUE_TEMPLATE/feature-request.yml index 6880986..14c624d 100644 --- a/.github/ISSUE_TEMPLATE/feature-request.yml +++ b/.github/ISSUE_TEMPLATE/feature-request.yml @@ -1,5 +1,5 @@ name: Feature Request -description: Please add feature suggestions related to TEMPLATE_ADDON add-on here. +description: Please add feature suggestions related to Syntax Highlighter add-on here. body: - type: textarea id: feature-proposal From 0498cd34a5d375a876923835a09458acbae9b5df Mon Sep 17 00:00:00 2001 From: Martin Lopez Date: Wed, 31 Jul 2024 15:50:57 -0300 Subject: [PATCH 25/41] chore: fix how to ignore resources --- .gitignore | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 79759ae..2201857 100644 --- a/.gitignore +++ b/.gitignore @@ -13,7 +13,9 @@ drivers tsconfig.json .idea types.d.ts -src/main/frontend/generated vite.generated.ts vite.config.ts -/src/main/dev-bundle \ No newline at end of file +/src/main/dev-bundle +/src/main/bundles +/src/main/frontend/generated +/src/main/frontend/index.html \ No newline at end of file From 0c1b4c3e86ac580c250a22bb0fb21d007cd54ae3 Mon Sep 17 00:00:00 2001 From: Martin Lopez Date: Wed, 31 Jul 2024 15:52:15 -0300 Subject: [PATCH 26/41] feat(demo): add missing @GithubBranch annotation --- .../addons/syntaxhighlighter/SyntaxHighlighterDemoView.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterDemoView.java b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterDemoView.java index 0bbce50..073c083 100644 --- a/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterDemoView.java +++ b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterDemoView.java @@ -20,6 +20,7 @@ package com.flowingcode.vaadin.addons.syntaxhighlighter; import com.flowingcode.vaadin.addons.DemoLayout; +import com.flowingcode.vaadin.addons.GithubBranch; import com.flowingcode.vaadin.addons.GithubLink; import com.flowingcode.vaadin.addons.demo.TabbedDemo; import com.vaadin.flow.router.ParentLayout; @@ -29,6 +30,7 @@ @ParentLayout(DemoLayout.class) @Route("syntax-highlighter") @GithubLink("https://github.com/FlowingCode/SyntaxHighlighter") +@GithubBranch("initial-implementation") public class SyntaxHighlighterDemoView extends TabbedDemo { public SyntaxHighlighterDemoView() { From 6a62014ddfcddeacdba060f0671940cccda07e75 Mon Sep 17 00:00:00 2001 From: Martin Lopez Date: Wed, 31 Jul 2024 16:16:52 -0300 Subject: [PATCH 27/41] feat: improve constructors provide a no argument constructor and another one that receives language and content --- .../syntaxhighlighter/SyntaxHighlighter.java | 17 +++++++---------- .../SyntaxHighlighterPrism.java | 15 ++++++--------- .../SyntaxHighlighterDemo.java | 2 +- .../SyntaxHighlighterPrismDemo.java | 2 +- .../test/SyntaxHighlighterPrismTest.java | 8 ++++---- .../test/SyntaxHighlighterTest.java | 8 ++++---- 6 files changed, 23 insertions(+), 29 deletions(-) diff --git a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighter.java b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighter.java index 0a5a01d..fbb92fb 100644 --- a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighter.java +++ b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighter.java @@ -39,27 +39,24 @@ public class SyntaxHighlighter extends ReactAdapterComponent implements HasSize { /** - * Constructs a new SyntaxHighlighter with default settings. + * Constructs a new SyntaxHighlighter for Java language with empty content */ public SyntaxHighlighter() { - this(SHLanguage.JAVA, SHStyle.A11YDARK ,"", false, false); + this(SHLanguage.JAVA, ""); } /** - * Constructs a new SyntaxHighlighter with the specified settings. + * Constructs a new SyntaxHighlighter with the specified language and content using a11yDark theme. * * @param language The programming language to highlight. - * @param style The style to apply to the highlighted code. * @param content The code content to highlight. - * @param showLineNumbers Whether to show line numbers. - * @param wrapLines Whether to wrap lines. */ - public SyntaxHighlighter(SHLanguage language, SHStyle style, String content, boolean showLineNumbers, boolean wrapLines) { - setSHStyle(style); + public SyntaxHighlighter(SHLanguage language, String content) { + setSHStyle(SHStyle.A11YDARK); setSHLanguage(language); setContent(content); - setShowLineNumbers(showLineNumbers); - setWrapLines(wrapLines); + setShowLineNumbers(false); + setWrapLines(false); } public boolean isWrapLines() { diff --git a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrism.java b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrism.java index 889d2e9..958f505 100644 --- a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrism.java +++ b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrism.java @@ -40,24 +40,21 @@ public class SyntaxHighlighterPrism extends ReactAdapterComponent implements HasSize { public SyntaxHighlighterPrism() { - this(SHLanguagePrism.JAVA, SHStylePrism.A11YDARK ,"", false, false); + this(SHLanguagePrism.JAVA, ""); } /** - * Constructs a new SyntaxHighlighter with the specified settings. + * Constructs a new SyntaxHighlighter with the specified language and content using a11yDark theme. * * @param language The programming language to highlight. - * @param style The style to apply to the highlighted code. * @param content The code content to highlight. - * @param showLineNumbers Whether to show line numbers. - * @param wrapLines Whether to wrap lines. */ - public SyntaxHighlighterPrism(SHLanguagePrism language, SHStylePrism style, String content, boolean showLineNumbers, boolean wrapLines) { - setSHStyle(style); + public SyntaxHighlighterPrism(SHLanguagePrism language, String content) { + setSHStyle(SHStylePrism.A11YDARK); setSHLanguage(language); setContent(content); - setShowLineNumbers(showLineNumbers); - setWrapLines(wrapLines); + setShowLineNumbers(false); + setWrapLines(false); } public boolean isWrapLines() { diff --git a/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterDemo.java b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterDemo.java index acf21bf..6c4c73e 100644 --- a/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterDemo.java +++ b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterDemo.java @@ -46,7 +46,7 @@ public SyntaxHighlighterDemo() { " \n" + // " );\n" + // "};"; - SyntaxHighlighter sh = new SyntaxHighlighter(SHLanguage.JAVASCRIPT, SHStyle.A11YDARK, defaultValue, false, false); + SyntaxHighlighter sh = new SyntaxHighlighter(SHLanguage.JAVASCRIPT, defaultValue); sh.setSizeFull(); ComboBox style = new ComboBox<>(); style.setItems(SHStyle.values()); diff --git a/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrismDemo.java b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrismDemo.java index 6ca0a63..78e6649 100644 --- a/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrismDemo.java +++ b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrismDemo.java @@ -46,7 +46,7 @@ public SyntaxHighlighterPrismDemo() { " \n" + // " );\n" + // "};"; - SyntaxHighlighterPrism sh = new SyntaxHighlighterPrism(SHLanguagePrism.JAVASCRIPT, SHStylePrism.A11YDARK, defaultValue, false, false); + SyntaxHighlighterPrism sh = new SyntaxHighlighterPrism(SHLanguagePrism.JAVASCRIPT, defaultValue); sh.setSizeFull(); ComboBox style = new ComboBox<>(); style.setItems(SHStylePrism.values()); diff --git a/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/test/SyntaxHighlighterPrismTest.java b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/test/SyntaxHighlighterPrismTest.java index 5ae79a8..82534ec 100644 --- a/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/test/SyntaxHighlighterPrismTest.java +++ b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/test/SyntaxHighlighterPrismTest.java @@ -30,12 +30,12 @@ public void testDefaultConstructor() { @Test public void testParameterizedConstructor() { SyntaxHighlighterPrism sh = new SyntaxHighlighterPrism(SHLanguagePrism.JAVASCRIPT, - SHStylePrism.DUOTONEDARK, "test", true, true); + "test"); assertEquals(SHLanguagePrism.JAVASCRIPT, sh.getSHLanguage()); - assertEquals(SHStylePrism.DUOTONEDARK, sh.getSHStyle()); + assertEquals(SHStylePrism.A11YDARK, sh.getSHStyle()); assertEquals("test", sh.getContent()); - assertTrue(sh.isShowLineNumbers()); - assertTrue(sh.isWrapLines()); + assertFalse(sh.isShowLineNumbers()); + assertFalse(sh.isWrapLines()); } @Test diff --git a/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/test/SyntaxHighlighterTest.java b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/test/SyntaxHighlighterTest.java index cccf44a..52ce172 100644 --- a/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/test/SyntaxHighlighterTest.java +++ b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/test/SyntaxHighlighterTest.java @@ -30,12 +30,12 @@ public void testDefaultConstructor() { @Test public void testParameterizedConstructor() { SyntaxHighlighter sh = - new SyntaxHighlighter(SHLanguage.JAVASCRIPT, SHStyle.ANDROIDSTUDIO, "test", true, true); + new SyntaxHighlighter(SHLanguage.JAVASCRIPT, "test"); assertEquals(SHLanguage.JAVASCRIPT, sh.getSHLanguage()); - assertEquals(SHStyle.ANDROIDSTUDIO, sh.getSHStyle()); + assertEquals(SHStyle.A11YDARK, sh.getSHStyle()); assertEquals("test", sh.getContent()); - assertTrue(sh.isShowLineNumbers()); - assertTrue(sh.isWrapLines()); + assertFalse(sh.isShowLineNumbers()); + assertFalse(sh.isWrapLines()); } @Test From aff45fdf481cc596d1bfb2074dcf71d4f6455d3b Mon Sep 17 00:00:00 2001 From: Martin Lopez Date: Wed, 31 Jul 2024 16:18:36 -0300 Subject: [PATCH 28/41] docs: improve javadocs explain difference with plain SyntaxhHighlighter and add documentation for no arg constructor --- .../addons/syntaxhighlighter/SyntaxHighlighterPrism.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrism.java b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrism.java index 958f505..6461afa 100644 --- a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrism.java +++ b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrism.java @@ -28,7 +28,7 @@ /** * A Vaadin component that wraps the react-syntax-highlighter library to provide syntax highlighting for code snippets. - * Prism implementation + * This implementation is based on Prism.js (more information here: https://github.com/react-syntax-highlighter/react-syntax-highlighter?tab=readme-ov-file#prism) * * @author mlopezFC * @since 1.0.0 @@ -39,6 +39,9 @@ @Tag("syntax-highlighter-prism") public class SyntaxHighlighterPrism extends ReactAdapterComponent implements HasSize { + /** + * Constructs a new SyntaxHighlighter for Java language with empty content + */ public SyntaxHighlighterPrism() { this(SHLanguagePrism.JAVA, ""); } From c162ee476c39ec9742542246a775ab08f4572cb9 Mon Sep 17 00:00:00 2001 From: Martin Lopez Date: Wed, 31 Jul 2024 16:23:35 -0300 Subject: [PATCH 29/41] refactor: use a BaseSyntaxHighlighter class to reuse code --- .../BaseSyntaxHighlighter.java | 38 +++++++++++++++++++ .../syntaxhighlighter/SyntaxHighlighter.java | 33 +--------------- .../SyntaxHighlighterPrism.java | 33 +--------------- 3 files changed, 40 insertions(+), 64 deletions(-) create mode 100644 src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/BaseSyntaxHighlighter.java diff --git a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/BaseSyntaxHighlighter.java b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/BaseSyntaxHighlighter.java new file mode 100644 index 0000000..ec16ecf --- /dev/null +++ b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/BaseSyntaxHighlighter.java @@ -0,0 +1,38 @@ +package com.flowingcode.vaadin.addons.syntaxhighlighter; + +import com.vaadin.flow.component.HasSize; +import com.vaadin.flow.component.react.ReactAdapterComponent; + +@SuppressWarnings("serial") +public class BaseSyntaxHighlighter extends ReactAdapterComponent implements HasSize { + + public boolean isWrapLines() { + return getState("wrapLines", Boolean.class); + } + public void setWrapLines(boolean wrapLines) { + setState("wrapLines", wrapLines); + } + + public boolean isShowLineNumbers() { + return getState("showLineNumbers", Boolean.class); + } + public void setShowLineNumbers(boolean showLineNumbers) { + setState("showLineNumbers", showLineNumbers); + } + + public String getContent() { + return getState("content", String.class); + } + public void setContent(String content) { + setState("content", content); + } + + @Override + public void setWidth(String width) { + getElement().executeJs("this.style.width = $0;", width); + } + public void setHeight(String height) { + getElement().executeJs("this.style.height = $0;", height); + } + +} diff --git a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighter.java b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighter.java index fbb92fb..5798505 100644 --- a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighter.java +++ b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighter.java @@ -20,11 +20,9 @@ package com.flowingcode.vaadin.addons.syntaxhighlighter; -import com.vaadin.flow.component.HasSize; import com.vaadin.flow.component.Tag; import com.vaadin.flow.component.dependency.JsModule; import com.vaadin.flow.component.dependency.NpmPackage; -import com.vaadin.flow.component.react.ReactAdapterComponent; /** * A Vaadin component that wraps the react-syntax-highlighter library to provide syntax highlighting for code snippets. @@ -36,7 +34,7 @@ @NpmPackage(value = "react-syntax-highlighter", version = "15.5.0") @JsModule("./react-syntax-highlighter.tsx") @Tag("syntax-highlighter") -public class SyntaxHighlighter extends ReactAdapterComponent implements HasSize { +public class SyntaxHighlighter extends BaseSyntaxHighlighter { /** * Constructs a new SyntaxHighlighter for Java language with empty content @@ -59,20 +57,6 @@ public SyntaxHighlighter(SHLanguage language, String content) { setWrapLines(false); } - public boolean isWrapLines() { - return getState("wrapLines", Boolean.class); - } - public void setWrapLines(boolean wrapLines) { - setState("wrapLines", wrapLines); - } - - public boolean isShowLineNumbers() { - return getState("showLineNumbers", Boolean.class); - } - public void setShowLineNumbers(boolean showLineNumbers) { - setState("showLineNumbers", showLineNumbers); - } - public SHLanguage getSHLanguage() { return SHLanguage.valueOf(getState("language", String.class).toUpperCase()); } @@ -86,20 +70,5 @@ public SHStyle getSHStyle() { public void setSHStyle(SHStyle style) { setState("stylename", style.getName()); } - - public String getContent() { - return getState("content", String.class); - } - public void setContent(String content) { - setState("content", content); - } - - @Override - public void setWidth(String width) { - getElement().executeJs("this.style.width = $0;", width); - } - public void setHeight(String height) { - getElement().executeJs("this.style.height = $0;", height); - } } diff --git a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrism.java b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrism.java index 6461afa..839fb5f 100644 --- a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrism.java +++ b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrism.java @@ -20,11 +20,9 @@ package com.flowingcode.vaadin.addons.syntaxhighlighter; -import com.vaadin.flow.component.HasSize; import com.vaadin.flow.component.Tag; import com.vaadin.flow.component.dependency.JsModule; import com.vaadin.flow.component.dependency.NpmPackage; -import com.vaadin.flow.component.react.ReactAdapterComponent; /** * A Vaadin component that wraps the react-syntax-highlighter library to provide syntax highlighting for code snippets. @@ -37,7 +35,7 @@ @NpmPackage(value = "react-syntax-highlighter", version = "15.5.0") @JsModule("./react-syntax-highlighter-prism.tsx") @Tag("syntax-highlighter-prism") -public class SyntaxHighlighterPrism extends ReactAdapterComponent implements HasSize { +public class SyntaxHighlighterPrism extends BaseSyntaxHighlighter { /** * Constructs a new SyntaxHighlighter for Java language with empty content @@ -60,20 +58,6 @@ public SyntaxHighlighterPrism(SHLanguagePrism language, String content) { setWrapLines(false); } - public boolean isWrapLines() { - return getState("wrapLines", Boolean.class); - } - public void setWrapLines(boolean wrapLines) { - setState("wrapLines", wrapLines); - } - - public boolean isShowLineNumbers() { - return getState("showLineNumbers", Boolean.class); - } - public void setShowLineNumbers(boolean showLineNumbers) { - setState("showLineNumbers", showLineNumbers); - } - public SHLanguagePrism getSHLanguage() { return SHLanguagePrism.valueOf(getState("language", String.class).toUpperCase()); } @@ -88,19 +72,4 @@ public void setSHStyle(SHStylePrism style) { setState("stylename", style.getName()); } - public String getContent() { - return getState("content", String.class); - } - public void setContent(String content) { - setState("content", content); - } - - @Override - public void setWidth(String width) { - getElement().executeJs("this.style.width = $0;", width); - } - public void setHeight(String height) { - getElement().executeJs("this.style.height = $0;", height); - } - } From 052586fe0787d2af566ea565473c10a4ea6bb40a Mon Sep 17 00:00:00 2001 From: Martin Lopez Date: Wed, 31 Jul 2024 18:19:51 -0300 Subject: [PATCH 30/41] docs: add missing javadoc --- .../BaseSyntaxHighlighter.java | 41 ++++++++++++++++++- .../syntaxhighlighter/SyntaxHighlighter.java | 18 ++++++++ .../SyntaxHighlighterPrism.java | 18 ++++++++ 3 files changed, 76 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/BaseSyntaxHighlighter.java b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/BaseSyntaxHighlighter.java index ec16ecf..1437d27 100644 --- a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/BaseSyntaxHighlighter.java +++ b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/BaseSyntaxHighlighter.java @@ -3,34 +3,73 @@ import com.vaadin.flow.component.HasSize; import com.vaadin.flow.component.react.ReactAdapterComponent; +/** + * Base class for SyntaxHighlighters + */ @SuppressWarnings("serial") public class BaseSyntaxHighlighter extends ReactAdapterComponent implements HasSize { + /** + * Returns true if the wrapLines feature is enabled + * More info: https://github.com/react-syntax-highlighter/react-syntax-highlighter?tab=readme-ov-file#props + * @return true if the wrapLines feature is enabled + */ public boolean isWrapLines() { return getState("wrapLines", Boolean.class); } + + /** + * Enable or disable the wrapLines feature + * @param wrapLines boolean to enable or disable the wrapLines feature + */ public void setWrapLines(boolean wrapLines) { setState("wrapLines", wrapLines); } + /** + * Returns true if the showLineNumbers feature is enabled + * More info: https://github.com/react-syntax-highlighter/react-syntax-highlighter?tab=readme-ov-file#props + * @return true if the showLineNumbers feature is enabled + */ public boolean isShowLineNumbers() { return getState("showLineNumbers", Boolean.class); } + + /** + * Enable or disable the showLineNumbers feature + * @param showLineNumbers boolean to enable or disable the showLineNumbers feature + */ public void setShowLineNumbers(boolean showLineNumbers) { setState("showLineNumbers", showLineNumbers); } - + + /** + * Returns the content of the Syntax Highlighter + * @return string with the contents + */ public String getContent() { return getState("content", String.class); } + + /** + * Sets the content of the Syntax Highlighter + * @param content + */ public void setContent(String content) { setState("content", content); } + /** + * Sets the width of the Syntax Highlighter + */ @Override public void setWidth(String width) { getElement().executeJs("this.style.width = $0;", width); } + + /** + * Obtains the width of the Syntax Highlighter + */ public void setHeight(String height) { getElement().executeJs("this.style.height = $0;", height); } diff --git a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighter.java b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighter.java index 5798505..fe8c703 100644 --- a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighter.java +++ b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighter.java @@ -57,16 +57,34 @@ public SyntaxHighlighter(SHLanguage language, String content) { setWrapLines(false); } + /** + * Obtains the current SyntaxHighlighter Language + * @return current language + */ public SHLanguage getSHLanguage() { return SHLanguage.valueOf(getState("language", String.class).toUpperCase()); } + + /** + * Sets the SyntaxHighlighter Language + * @param language + */ public void setSHLanguage(SHLanguage language) { setState("language", language.getName()); } + /** + * Obtains the current SyntaxHighlighter Style + * @return style + */ public SHStyle getSHStyle() { return SHStyle.valueOf(getState("stylename", String.class).toUpperCase()); } + + /** + * Sets the SyntaxHighlighter Style + * @param style + */ public void setSHStyle(SHStyle style) { setState("stylename", style.getName()); } diff --git a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrism.java b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrism.java index 839fb5f..7392906 100644 --- a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrism.java +++ b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrism.java @@ -58,16 +58,34 @@ public SyntaxHighlighterPrism(SHLanguagePrism language, String content) { setWrapLines(false); } + /** + * Obtains the current SyntaxHighlighterPrism Language + * @return + */ public SHLanguagePrism getSHLanguage() { return SHLanguagePrism.valueOf(getState("language", String.class).toUpperCase()); } + + /** + * Sets the SyntaxHighlighterPrism Language + * @param language + */ public void setSHLanguage(SHLanguagePrism language) { setState("language", language.getName()); } + /** + * Obtains the current SyntaxHighlighterPrism Style + * @return + */ public SHStylePrism getSHStyle() { return SHStylePrism.valueOf(getState("stylename", String.class).toUpperCase()); } + + /** + * Sets the SyntaxHighlighter Style + * @param style + */ public void setSHStyle(SHStylePrism style) { setState("stylename", style.getName()); } From 01a1de137b3c012b65ee8ab71d51b20e29e65d2b Mon Sep 17 00:00:00 2001 From: Martin Lopez Date: Mon, 5 Aug 2024 15:58:04 -0300 Subject: [PATCH 31/41] fix: use correct property name --- .../addons/syntaxhighlighter/BaseSyntaxHighlighter.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/BaseSyntaxHighlighter.java b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/BaseSyntaxHighlighter.java index 1437d27..c49b807 100644 --- a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/BaseSyntaxHighlighter.java +++ b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/BaseSyntaxHighlighter.java @@ -15,7 +15,7 @@ public class BaseSyntaxHighlighter extends ReactAdapterComponent implements HasS * @return true if the wrapLines feature is enabled */ public boolean isWrapLines() { - return getState("wrapLines", Boolean.class); + return getState("wrapLongLines", Boolean.class); } /** @@ -23,7 +23,7 @@ public boolean isWrapLines() { * @param wrapLines boolean to enable or disable the wrapLines feature */ public void setWrapLines(boolean wrapLines) { - setState("wrapLines", wrapLines); + setState("wrapLongLines", wrapLines); } /** From a65bfb0dde9bbdaf02c1cb07cb3ed836ecff8902 Mon Sep 17 00:00:00 2001 From: Martin Lopez Date: Mon, 5 Aug 2024 15:59:09 -0300 Subject: [PATCH 32/41] docs: remove initial lines --- LICENSE | 4 ---- 1 file changed, 4 deletions(-) diff --git a/LICENSE b/LICENSE index 5756052..7f8889b 100644 --- a/LICENSE +++ b/LICENSE @@ -1,7 +1,3 @@ -All parts are licensed under Apache License v2.0. See the license text below. - ------------------------------------------------------------------------------ - Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ From f09d555527bb6da296cb37352d47c17f3cd61927 Mon Sep 17 00:00:00 2001 From: Martin Lopez Date: Mon, 5 Aug 2024 16:01:56 -0300 Subject: [PATCH 33/41] docs: use allowed instead of whitelisted --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index d71febe..514f52a 100644 --- a/README.md +++ b/README.md @@ -96,10 +96,10 @@ The same with the styling: ## Special configuration when using Spring -By default, Vaadin Flow only includes ```com/vaadin/flow/component``` to be always scanned for UI components and views. For this reason, the add-on might need to be whitelisted in order to display correctly. +By default, Vaadin Flow only includes ```com/vaadin/flow/component``` to be always scanned for UI components and views. For this reason, the add-on might need to be allowed in order to display correctly. -To do so, just add ```com.flowingcode``` to the ```vaadin.whitelisted-packages``` property in ```src/main/resources/application.properties```, like: +To do so, just add ```com.flowingcode``` to the ```vaadin.allowed-packages``` property in ```src/main/resources/application.properties```, like: -```vaadin.whitelisted-packages = com.vaadin,org.vaadin,dev.hilla,com.flowingcode``` - -More information on Spring whitelisted configuration [here](https://vaadin.com/docs/latest/integrations/spring/configuration/#configure-the-scanning-of-packages). +```vaadin.allowed-packages = com.vaadin,org.vaadin,dev.hilla,com.flowingcode``` + +More information on Spring scanning configuration [here](https://vaadin.com/docs/latest/integrations/spring/configuration/#configure-the-scanning-of-packages). From 3e671446c6aa824d7145e0f3d93aadd839a4f26e Mon Sep 17 00:00:00 2001 From: Martin Lopez Date: Mon, 5 Aug 2024 16:04:02 -0300 Subject: [PATCH 34/41] docs: update the location of the released and snapshot versions --- README.md | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/README.md b/README.md index 514f52a..ae5cbf5 100644 --- a/README.md +++ b/README.md @@ -33,14 +33,7 @@ Add the following dependencies in your pom.xml file: ``` -```xml - - vaadin-addons - https://maven.vaadin.com/vaadin-addons - -``` - -For SNAPSHOT versions see [here](https://maven.flowingcode.com/snapshots/). +Release versions are available from Maven Central repository. For SNAPSHOT versions see [here](https://maven.flowingcode.com/snapshots/). ## Building and running demo From e02cb6035705935b86ab0eb543344222695d1f19 Mon Sep 17 00:00:00 2001 From: Martin Lopez Date: Mon, 12 Aug 2024 17:10:05 -0300 Subject: [PATCH 35/41] fix: rename wrapLines attribute to wrapLongLines Rename the wrapLines attribute so it uses the same name as its javascript counterpart --- .../syntaxhighlighter/BaseSyntaxHighlighter.java | 14 +++++++------- .../syntaxhighlighter/SyntaxHighlighter.java | 2 +- .../syntaxhighlighter/SyntaxHighlighterPrism.java | 2 +- .../syntaxhighlighter/SyntaxHighlighterDemo.java | 8 ++++---- .../SyntaxHighlighterPrismDemo.java | 8 ++++---- .../test/SyntaxHighlighterPrismTest.java | 8 ++++---- .../test/SyntaxHighlighterTest.java | 8 ++++---- 7 files changed, 25 insertions(+), 25 deletions(-) diff --git a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/BaseSyntaxHighlighter.java b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/BaseSyntaxHighlighter.java index c49b807..cfdc742 100644 --- a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/BaseSyntaxHighlighter.java +++ b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/BaseSyntaxHighlighter.java @@ -10,20 +10,20 @@ public class BaseSyntaxHighlighter extends ReactAdapterComponent implements HasSize { /** - * Returns true if the wrapLines feature is enabled + * Returns true if the wrapLongLines feature is enabled * More info: https://github.com/react-syntax-highlighter/react-syntax-highlighter?tab=readme-ov-file#props - * @return true if the wrapLines feature is enabled + * @return true if the wrapLongLines feature is enabled */ - public boolean isWrapLines() { + public boolean isWrapLongLines() { return getState("wrapLongLines", Boolean.class); } /** - * Enable or disable the wrapLines feature - * @param wrapLines boolean to enable or disable the wrapLines feature + * Enable or disable the wrapLongLines feature + * @param wrapLongLines boolean to enable or disable the wrapLongLines feature */ - public void setWrapLines(boolean wrapLines) { - setState("wrapLongLines", wrapLines); + public void setWrapLongLines(boolean wrapLongLines) { + setState("wrapLongLines", wrapLongLines); } /** diff --git a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighter.java b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighter.java index fe8c703..44ac5ca 100644 --- a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighter.java +++ b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighter.java @@ -54,7 +54,7 @@ public SyntaxHighlighter(SHLanguage language, String content) { setSHLanguage(language); setContent(content); setShowLineNumbers(false); - setWrapLines(false); + setWrapLongLines(false); } /** diff --git a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrism.java b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrism.java index 7392906..a451238 100644 --- a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrism.java +++ b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrism.java @@ -55,7 +55,7 @@ public SyntaxHighlighterPrism(SHLanguagePrism language, String content) { setSHLanguage(language); setContent(content); setShowLineNumbers(false); - setWrapLines(false); + setWrapLongLines(false); } /** diff --git a/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterDemo.java b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterDemo.java index 6c4c73e..2e9fca4 100644 --- a/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterDemo.java +++ b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterDemo.java @@ -65,9 +65,9 @@ public SyntaxHighlighterDemo() { showLineNumbers.addValueChangeListener(ev->{ sh.setShowLineNumbers(ev.getValue()); }); - Checkbox wrapLines = new Checkbox("Wrap lines"); - wrapLines.addValueChangeListener(ev->{ - sh.setWrapLines(ev.getValue()); + Checkbox wrapLongLines = new Checkbox("Wrap long lines"); + wrapLongLines.addValueChangeListener(ev->{ + sh.setWrapLongLines(ev.getValue()); }); TextArea ta = new TextArea(); ta.setValue(defaultValue); @@ -76,6 +76,6 @@ public SyntaxHighlighterDemo() { button.addClickListener(ev->{ sh.setContent(ta.getValue()); }); - add(new HorizontalLayout(style,languages), showLineNumbers, wrapLines, sh, ta, button); + add(new HorizontalLayout(style,languages), showLineNumbers, wrapLongLines, sh, ta, button); } } diff --git a/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrismDemo.java b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrismDemo.java index 78e6649..a087334 100644 --- a/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrismDemo.java +++ b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrismDemo.java @@ -65,9 +65,9 @@ public SyntaxHighlighterPrismDemo() { showLineNumbers.addValueChangeListener(ev->{ sh.setShowLineNumbers(ev.getValue()); }); - Checkbox wrapLines = new Checkbox("Wrap lines"); - wrapLines.addValueChangeListener(ev->{ - sh.setWrapLines(ev.getValue()); + Checkbox wrapLongLines = new Checkbox("Wrap long lines"); + wrapLongLines.addValueChangeListener(ev->{ + sh.setWrapLongLines(ev.getValue()); }); TextArea ta = new TextArea(); ta.setValue(defaultValue); @@ -76,6 +76,6 @@ public SyntaxHighlighterPrismDemo() { button.addClickListener(ev->{ sh.setContent(ta.getValue()); }); - add(new HorizontalLayout(style,languages), showLineNumbers, wrapLines, sh, ta, button); + add(new HorizontalLayout(style,languages), showLineNumbers, wrapLongLines, sh, ta, button); } } diff --git a/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/test/SyntaxHighlighterPrismTest.java b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/test/SyntaxHighlighterPrismTest.java index 82534ec..0bb2a16 100644 --- a/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/test/SyntaxHighlighterPrismTest.java +++ b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/test/SyntaxHighlighterPrismTest.java @@ -24,7 +24,7 @@ public void testDefaultConstructor() { assertEquals(SHStylePrism.A11YDARK, syntaxHighlighter.getSHStyle()); assertEquals("", syntaxHighlighter.getContent()); assertFalse(syntaxHighlighter.isShowLineNumbers()); - assertFalse(syntaxHighlighter.isWrapLines()); + assertFalse(syntaxHighlighter.isWrapLongLines()); } @Test @@ -35,7 +35,7 @@ public void testParameterizedConstructor() { assertEquals(SHStylePrism.A11YDARK, sh.getSHStyle()); assertEquals("test", sh.getContent()); assertFalse(sh.isShowLineNumbers()); - assertFalse(sh.isWrapLines()); + assertFalse(sh.isWrapLongLines()); } @Test @@ -44,12 +44,12 @@ public void testSettersAndGetters() { syntaxHighlighter.setSHStyle(SHStylePrism.A11YDARK); syntaxHighlighter.setContent("test content"); syntaxHighlighter.setShowLineNumbers(true); - syntaxHighlighter.setWrapLines(true); + syntaxHighlighter.setWrapLongLines(true); assertEquals(SHLanguagePrism.PYTHON, syntaxHighlighter.getSHLanguage()); assertEquals(SHStylePrism.A11YDARK, syntaxHighlighter.getSHStyle()); assertEquals("test content", syntaxHighlighter.getContent()); assertTrue(syntaxHighlighter.isShowLineNumbers()); - assertTrue(syntaxHighlighter.isWrapLines()); + assertTrue(syntaxHighlighter.isWrapLongLines()); } } diff --git a/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/test/SyntaxHighlighterTest.java b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/test/SyntaxHighlighterTest.java index 52ce172..9670f38 100644 --- a/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/test/SyntaxHighlighterTest.java +++ b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/test/SyntaxHighlighterTest.java @@ -24,7 +24,7 @@ public void testDefaultConstructor() { assertEquals(SHStyle.A11YDARK, syntaxHighlighter.getSHStyle()); assertEquals("", syntaxHighlighter.getContent()); assertFalse(syntaxHighlighter.isShowLineNumbers()); - assertFalse(syntaxHighlighter.isWrapLines()); + assertFalse(syntaxHighlighter.isWrapLongLines()); } @Test @@ -35,7 +35,7 @@ public void testParameterizedConstructor() { assertEquals(SHStyle.A11YDARK, sh.getSHStyle()); assertEquals("test", sh.getContent()); assertFalse(sh.isShowLineNumbers()); - assertFalse(sh.isWrapLines()); + assertFalse(sh.isWrapLongLines()); } @Test @@ -44,12 +44,12 @@ public void testSettersAndGetters() { syntaxHighlighter.setSHStyle(SHStyle.A11YDARK); syntaxHighlighter.setContent("test content"); syntaxHighlighter.setShowLineNumbers(true); - syntaxHighlighter.setWrapLines(true); + syntaxHighlighter.setWrapLongLines(true); assertEquals(SHLanguage.PYTHON, syntaxHighlighter.getSHLanguage()); assertEquals(SHStyle.A11YDARK, syntaxHighlighter.getSHStyle()); assertEquals("test content", syntaxHighlighter.getContent()); assertTrue(syntaxHighlighter.isShowLineNumbers()); - assertTrue(syntaxHighlighter.isWrapLines()); + assertTrue(syntaxHighlighter.isWrapLongLines()); } } From 18fe5f91412e4c57bb70054b3f56ed5dbea3f7c6 Mon Sep 17 00:00:00 2001 From: Martin Lopez Date: Tue, 13 Aug 2024 11:31:20 -0300 Subject: [PATCH 36/41] refactor: use correct camel case capitalization for SHLanguage class --- .../{SHLanguage.java => ShLanguage.java} | 4 ++-- .../addons/syntaxhighlighter/SyntaxHighlighter.java | 10 +++++----- .../syntaxhighlighter/SyntaxHighlighterDemo.java | 8 ++++---- .../test/SyntaxHighlighterTest.java | 12 ++++++------ 4 files changed, 17 insertions(+), 17 deletions(-) rename src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/{SHLanguage.java => ShLanguage.java} (98%) diff --git a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SHLanguage.java b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/ShLanguage.java similarity index 98% rename from src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SHLanguage.java rename to src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/ShLanguage.java index cde2608..52121d7 100644 --- a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SHLanguage.java +++ b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/ShLanguage.java @@ -25,7 +25,7 @@ * @author mlopezFC * @since 1.0.0 */ -public enum SHLanguage { +public enum ShLanguage { ONEC("oneC"), ABNF("abnf"), @@ -221,7 +221,7 @@ public enum SHLanguage { private final String name; - private SHLanguage(String language) { + private ShLanguage(String language) { name = language; } diff --git a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighter.java b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighter.java index 44ac5ca..825eed2 100644 --- a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighter.java +++ b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighter.java @@ -40,7 +40,7 @@ public class SyntaxHighlighter extends BaseSyntaxHighlighter { * Constructs a new SyntaxHighlighter for Java language with empty content */ public SyntaxHighlighter() { - this(SHLanguage.JAVA, ""); + this(ShLanguage.JAVA, ""); } /** @@ -49,7 +49,7 @@ public SyntaxHighlighter() { * @param language The programming language to highlight. * @param content The code content to highlight. */ - public SyntaxHighlighter(SHLanguage language, String content) { + public SyntaxHighlighter(ShLanguage language, String content) { setSHStyle(SHStyle.A11YDARK); setSHLanguage(language); setContent(content); @@ -61,15 +61,15 @@ public SyntaxHighlighter(SHLanguage language, String content) { * Obtains the current SyntaxHighlighter Language * @return current language */ - public SHLanguage getSHLanguage() { - return SHLanguage.valueOf(getState("language", String.class).toUpperCase()); + public ShLanguage getSHLanguage() { + return ShLanguage.valueOf(getState("language", String.class).toUpperCase()); } /** * Sets the SyntaxHighlighter Language * @param language */ - public void setSHLanguage(SHLanguage language) { + public void setSHLanguage(ShLanguage language) { setState("language", language.getName()); } diff --git a/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterDemo.java b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterDemo.java index 2e9fca4..b772cae 100644 --- a/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterDemo.java +++ b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterDemo.java @@ -46,7 +46,7 @@ public SyntaxHighlighterDemo() { " \n" + // " );\n" + // "};"; - SyntaxHighlighter sh = new SyntaxHighlighter(SHLanguage.JAVASCRIPT, defaultValue); + SyntaxHighlighter sh = new SyntaxHighlighter(ShLanguage.JAVASCRIPT, defaultValue); sh.setSizeFull(); ComboBox style = new ComboBox<>(); style.setItems(SHStyle.values()); @@ -54,10 +54,10 @@ public SyntaxHighlighterDemo() { sh.setSHStyle(style.getValue()); }); style.setValue(SHStyle.A11YDARK); - ComboBox languages = new ComboBox<>(); - languages.setItems(SHLanguage.values()); + ComboBox languages = new ComboBox<>(); + languages.setItems(ShLanguage.values()); languages.setItemLabelGenerator(language->language.getName()); - languages.setValue(SHLanguage.JAVASCRIPT); + languages.setValue(ShLanguage.JAVASCRIPT); languages.addValueChangeListener(ev->{ sh.setSHLanguage(ev.getValue()); }); diff --git a/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/test/SyntaxHighlighterTest.java b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/test/SyntaxHighlighterTest.java index 9670f38..e3b91b5 100644 --- a/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/test/SyntaxHighlighterTest.java +++ b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/test/SyntaxHighlighterTest.java @@ -3,7 +3,7 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; -import com.flowingcode.vaadin.addons.syntaxhighlighter.SHLanguage; +import com.flowingcode.vaadin.addons.syntaxhighlighter.ShLanguage; import com.flowingcode.vaadin.addons.syntaxhighlighter.SHStyle; import com.flowingcode.vaadin.addons.syntaxhighlighter.SyntaxHighlighter; import org.junit.Before; @@ -20,7 +20,7 @@ public void setUp() { @Test public void testDefaultConstructor() { - assertEquals(SHLanguage.JAVA, syntaxHighlighter.getSHLanguage()); + assertEquals(ShLanguage.JAVA, syntaxHighlighter.getSHLanguage()); assertEquals(SHStyle.A11YDARK, syntaxHighlighter.getSHStyle()); assertEquals("", syntaxHighlighter.getContent()); assertFalse(syntaxHighlighter.isShowLineNumbers()); @@ -30,8 +30,8 @@ public void testDefaultConstructor() { @Test public void testParameterizedConstructor() { SyntaxHighlighter sh = - new SyntaxHighlighter(SHLanguage.JAVASCRIPT, "test"); - assertEquals(SHLanguage.JAVASCRIPT, sh.getSHLanguage()); + new SyntaxHighlighter(ShLanguage.JAVASCRIPT, "test"); + assertEquals(ShLanguage.JAVASCRIPT, sh.getSHLanguage()); assertEquals(SHStyle.A11YDARK, sh.getSHStyle()); assertEquals("test", sh.getContent()); assertFalse(sh.isShowLineNumbers()); @@ -40,13 +40,13 @@ public void testParameterizedConstructor() { @Test public void testSettersAndGetters() { - syntaxHighlighter.setSHLanguage(SHLanguage.PYTHON); + syntaxHighlighter.setSHLanguage(ShLanguage.PYTHON); syntaxHighlighter.setSHStyle(SHStyle.A11YDARK); syntaxHighlighter.setContent("test content"); syntaxHighlighter.setShowLineNumbers(true); syntaxHighlighter.setWrapLongLines(true); - assertEquals(SHLanguage.PYTHON, syntaxHighlighter.getSHLanguage()); + assertEquals(ShLanguage.PYTHON, syntaxHighlighter.getSHLanguage()); assertEquals(SHStyle.A11YDARK, syntaxHighlighter.getSHStyle()); assertEquals("test content", syntaxHighlighter.getContent()); assertTrue(syntaxHighlighter.isShowLineNumbers()); From 20855518e2af344e8da6ace88747d7023742cdca Mon Sep 17 00:00:00 2001 From: Martin Lopez Date: Tue, 13 Aug 2024 11:35:58 -0300 Subject: [PATCH 37/41] refactor(demo): use multiline text blocks --- .../SyntaxHighlighterDemo.java | 22 ++++++++++--------- .../SyntaxHighlighterPrismDemo.java | 22 ++++++++++--------- 2 files changed, 24 insertions(+), 20 deletions(-) diff --git a/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterDemo.java b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterDemo.java index b772cae..ab22e65 100644 --- a/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterDemo.java +++ b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterDemo.java @@ -36,16 +36,18 @@ public class SyntaxHighlighterDemo extends VerticalLayout { public SyntaxHighlighterDemo() { - String defaultValue = "import { Prism as SyntaxHighlighter } from 'react-syntax-highlighter';\n" + // - "import { dark } from 'react-syntax-highlighter/dist/esm/styles/prism';\n" + // - "const Component = () => {\n" + // - " const codeString = '(num) => num + 1';\n" + // - " return (\n" + // - " \n" + // - " {codeString}\n" + // - " \n" + // - " );\n" + // - "};"; + String defaultValue = """ +import { Prism as SyntaxHighlighter } from 'react-syntax-highlighter'; +import { dark } from 'react-syntax-highlighter/dist/esm/styles/prism'; +const Component = () => { + const codeString = '(num) => num + 1'; + return ( + + {codeString} + + ); +}; + """; SyntaxHighlighter sh = new SyntaxHighlighter(ShLanguage.JAVASCRIPT, defaultValue); sh.setSizeFull(); ComboBox style = new ComboBox<>(); diff --git a/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrismDemo.java b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrismDemo.java index a087334..acff04e 100644 --- a/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrismDemo.java +++ b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrismDemo.java @@ -36,16 +36,18 @@ public class SyntaxHighlighterPrismDemo extends VerticalLayout { public SyntaxHighlighterPrismDemo() { - String defaultValue = "import { Prism as SyntaxHighlighter } from 'react-syntax-highlighter';\n" + // - "import { dark } from 'react-syntax-highlighter/dist/esm/styles/prism';\n" + // - "const Component = () => {\n" + // - " const codeString = '(num) => num + 1';\n" + // - " return (\n" + // - " \n" + // - " {codeString}\n" + // - " \n" + // - " );\n" + // - "};"; + String defaultValue = """ +import { Prism as SyntaxHighlighter } from 'react-syntax-highlighter'; +import { dark } from 'react-syntax-highlighter/dist/esm/styles/prism'; +const Component = () => { + const codeString = '(num) => num + 1'; + return ( + + {codeString} + + ); +}; + """; SyntaxHighlighterPrism sh = new SyntaxHighlighterPrism(SHLanguagePrism.JAVASCRIPT, defaultValue); sh.setSizeFull(); ComboBox style = new ComboBox<>(); From 8ec224ac0d24937f1ed2e4080198142c48e81d70 Mon Sep 17 00:00:00 2001 From: Martin Lopez Date: Tue, 13 Aug 2024 11:39:23 -0300 Subject: [PATCH 38/41] refactor: fix camel case capitalization for SHLanguagePrism class --- .../{SHLanguagePrism.java => ShLanguagePrism.java} | 4 ++-- .../syntaxhighlighter/SyntaxHighlighterPrism.java | 12 ++++++------ .../SyntaxHighlighterPrismDemo.java | 10 +++++----- .../test/SyntaxHighlighterPrismTest.java | 12 ++++++------ 4 files changed, 19 insertions(+), 19 deletions(-) rename src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/{SHLanguagePrism.java => ShLanguagePrism.java} (98%) diff --git a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SHLanguagePrism.java b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/ShLanguagePrism.java similarity index 98% rename from src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SHLanguagePrism.java rename to src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/ShLanguagePrism.java index eb48b34..908cbed 100644 --- a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SHLanguagePrism.java +++ b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/ShLanguagePrism.java @@ -26,7 +26,7 @@ * @author mlopezFC * @since 1.0.0 */ -public enum SHLanguagePrism { +public enum ShLanguagePrism { ACTIONSCRIPT("actionscript"), ADA("ada"), @@ -306,7 +306,7 @@ public enum SHLanguagePrism { private final String name; - private SHLanguagePrism(String language) { + private ShLanguagePrism(String language) { name = language; } diff --git a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrism.java b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrism.java index a451238..1e704a2 100644 --- a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrism.java +++ b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrism.java @@ -41,7 +41,7 @@ public class SyntaxHighlighterPrism extends BaseSyntaxHighlighter { * Constructs a new SyntaxHighlighter for Java language with empty content */ public SyntaxHighlighterPrism() { - this(SHLanguagePrism.JAVA, ""); + this(ShLanguagePrism.JAVA, ""); } /** @@ -50,9 +50,9 @@ public SyntaxHighlighterPrism() { * @param language The programming language to highlight. * @param content The code content to highlight. */ - public SyntaxHighlighterPrism(SHLanguagePrism language, String content) { + public SyntaxHighlighterPrism(ShLanguagePrism language, String content) { setSHStyle(SHStylePrism.A11YDARK); - setSHLanguage(language); + setShLanguage(language); setContent(content); setShowLineNumbers(false); setWrapLongLines(false); @@ -62,15 +62,15 @@ public SyntaxHighlighterPrism(SHLanguagePrism language, String content) { * Obtains the current SyntaxHighlighterPrism Language * @return */ - public SHLanguagePrism getSHLanguage() { - return SHLanguagePrism.valueOf(getState("language", String.class).toUpperCase()); + public ShLanguagePrism getShLanguage() { + return ShLanguagePrism.valueOf(getState("language", String.class).toUpperCase()); } /** * Sets the SyntaxHighlighterPrism Language * @param language */ - public void setSHLanguage(SHLanguagePrism language) { + public void setShLanguage(ShLanguagePrism language) { setState("language", language.getName()); } diff --git a/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrismDemo.java b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrismDemo.java index acff04e..afcd8d4 100644 --- a/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrismDemo.java +++ b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrismDemo.java @@ -48,7 +48,7 @@ public SyntaxHighlighterPrismDemo() { ); }; """; - SyntaxHighlighterPrism sh = new SyntaxHighlighterPrism(SHLanguagePrism.JAVASCRIPT, defaultValue); + SyntaxHighlighterPrism sh = new SyntaxHighlighterPrism(ShLanguagePrism.JAVASCRIPT, defaultValue); sh.setSizeFull(); ComboBox style = new ComboBox<>(); style.setItems(SHStylePrism.values()); @@ -56,12 +56,12 @@ public SyntaxHighlighterPrismDemo() { sh.setSHStyle(style.getValue()); }); style.setValue(SHStylePrism.A11YDARK); - ComboBox languages = new ComboBox<>(); - languages.setItems(SHLanguagePrism.values()); + ComboBox languages = new ComboBox<>(); + languages.setItems(ShLanguagePrism.values()); languages.setItemLabelGenerator(language->language.getName()); - languages.setValue(SHLanguagePrism.TYPESCRIPT); + languages.setValue(ShLanguagePrism.TYPESCRIPT); languages.addValueChangeListener(ev->{ - sh.setSHLanguage(ev.getValue()); + sh.setShLanguage(ev.getValue()); }); Checkbox showLineNumbers = new Checkbox("Show Line Numbers"); showLineNumbers.addValueChangeListener(ev->{ diff --git a/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/test/SyntaxHighlighterPrismTest.java b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/test/SyntaxHighlighterPrismTest.java index 0bb2a16..690a08e 100644 --- a/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/test/SyntaxHighlighterPrismTest.java +++ b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/test/SyntaxHighlighterPrismTest.java @@ -3,7 +3,7 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; -import com.flowingcode.vaadin.addons.syntaxhighlighter.SHLanguagePrism; +import com.flowingcode.vaadin.addons.syntaxhighlighter.ShLanguagePrism; import com.flowingcode.vaadin.addons.syntaxhighlighter.SHStylePrism; import com.flowingcode.vaadin.addons.syntaxhighlighter.SyntaxHighlighterPrism; import org.junit.Before; @@ -20,7 +20,7 @@ public void setUp() { @Test public void testDefaultConstructor() { - assertEquals(SHLanguagePrism.JAVA, syntaxHighlighter.getSHLanguage()); + assertEquals(ShLanguagePrism.JAVA, syntaxHighlighter.getShLanguage()); assertEquals(SHStylePrism.A11YDARK, syntaxHighlighter.getSHStyle()); assertEquals("", syntaxHighlighter.getContent()); assertFalse(syntaxHighlighter.isShowLineNumbers()); @@ -29,9 +29,9 @@ public void testDefaultConstructor() { @Test public void testParameterizedConstructor() { - SyntaxHighlighterPrism sh = new SyntaxHighlighterPrism(SHLanguagePrism.JAVASCRIPT, + SyntaxHighlighterPrism sh = new SyntaxHighlighterPrism(ShLanguagePrism.JAVASCRIPT, "test"); - assertEquals(SHLanguagePrism.JAVASCRIPT, sh.getSHLanguage()); + assertEquals(ShLanguagePrism.JAVASCRIPT, sh.getShLanguage()); assertEquals(SHStylePrism.A11YDARK, sh.getSHStyle()); assertEquals("test", sh.getContent()); assertFalse(sh.isShowLineNumbers()); @@ -40,13 +40,13 @@ public void testParameterizedConstructor() { @Test public void testSettersAndGetters() { - syntaxHighlighter.setSHLanguage(SHLanguagePrism.PYTHON); + syntaxHighlighter.setShLanguage(ShLanguagePrism.PYTHON); syntaxHighlighter.setSHStyle(SHStylePrism.A11YDARK); syntaxHighlighter.setContent("test content"); syntaxHighlighter.setShowLineNumbers(true); syntaxHighlighter.setWrapLongLines(true); - assertEquals(SHLanguagePrism.PYTHON, syntaxHighlighter.getSHLanguage()); + assertEquals(ShLanguagePrism.PYTHON, syntaxHighlighter.getShLanguage()); assertEquals(SHStylePrism.A11YDARK, syntaxHighlighter.getSHStyle()); assertEquals("test content", syntaxHighlighter.getContent()); assertTrue(syntaxHighlighter.isShowLineNumbers()); From 05264c07d7cb08d8f17133f73b976e04a3ff789c Mon Sep 17 00:00:00 2001 From: Martin Lopez Date: Tue, 13 Aug 2024 11:40:19 -0300 Subject: [PATCH 39/41] refactor: use correct camel case capitalization for SHStyle class --- .../syntaxhighlighter/{SHStyle.java => ShStyle.java} | 4 ++-- .../addons/syntaxhighlighter/SyntaxHighlighter.java | 8 ++++---- .../syntaxhighlighter/SyntaxHighlighterDemo.java | 8 ++++---- .../syntaxhighlighter/test/SyntaxHighlighterTest.java | 10 +++++----- 4 files changed, 15 insertions(+), 15 deletions(-) rename src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/{SHStyle.java => ShStyle.java} (98%) diff --git a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SHStyle.java b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/ShStyle.java similarity index 98% rename from src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SHStyle.java rename to src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/ShStyle.java index fccd655..2de2340 100644 --- a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SHStyle.java +++ b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/ShStyle.java @@ -25,7 +25,7 @@ * @author mlopezFC * @since 1.0.0 */ -public enum SHStyle { +public enum ShStyle { A11YDARK("a11yDark"), A11YLIGHT("a11yLight"), @@ -127,7 +127,7 @@ public enum SHStyle { private final String name; - private SHStyle(String style) { + private ShStyle(String style) { name = style; } diff --git a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighter.java b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighter.java index 825eed2..6e50c0d 100644 --- a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighter.java +++ b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighter.java @@ -50,7 +50,7 @@ public SyntaxHighlighter() { * @param content The code content to highlight. */ public SyntaxHighlighter(ShLanguage language, String content) { - setSHStyle(SHStyle.A11YDARK); + setShStyle(ShStyle.A11YDARK); setSHLanguage(language); setContent(content); setShowLineNumbers(false); @@ -77,15 +77,15 @@ public void setSHLanguage(ShLanguage language) { * Obtains the current SyntaxHighlighter Style * @return style */ - public SHStyle getSHStyle() { - return SHStyle.valueOf(getState("stylename", String.class).toUpperCase()); + public ShStyle getShStyle() { + return ShStyle.valueOf(getState("stylename", String.class).toUpperCase()); } /** * Sets the SyntaxHighlighter Style * @param style */ - public void setSHStyle(SHStyle style) { + public void setShStyle(ShStyle style) { setState("stylename", style.getName()); } diff --git a/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterDemo.java b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterDemo.java index ab22e65..b7719f4 100644 --- a/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterDemo.java +++ b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterDemo.java @@ -50,12 +50,12 @@ public SyntaxHighlighterDemo() { """; SyntaxHighlighter sh = new SyntaxHighlighter(ShLanguage.JAVASCRIPT, defaultValue); sh.setSizeFull(); - ComboBox style = new ComboBox<>(); - style.setItems(SHStyle.values()); + ComboBox style = new ComboBox<>(); + style.setItems(ShStyle.values()); style.addValueChangeListener(ev->{ - sh.setSHStyle(style.getValue()); + sh.setShStyle(style.getValue()); }); - style.setValue(SHStyle.A11YDARK); + style.setValue(ShStyle.A11YDARK); ComboBox languages = new ComboBox<>(); languages.setItems(ShLanguage.values()); languages.setItemLabelGenerator(language->language.getName()); diff --git a/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/test/SyntaxHighlighterTest.java b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/test/SyntaxHighlighterTest.java index e3b91b5..5e5afd7 100644 --- a/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/test/SyntaxHighlighterTest.java +++ b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/test/SyntaxHighlighterTest.java @@ -4,7 +4,7 @@ import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import com.flowingcode.vaadin.addons.syntaxhighlighter.ShLanguage; -import com.flowingcode.vaadin.addons.syntaxhighlighter.SHStyle; +import com.flowingcode.vaadin.addons.syntaxhighlighter.ShStyle; import com.flowingcode.vaadin.addons.syntaxhighlighter.SyntaxHighlighter; import org.junit.Before; import org.junit.Test; @@ -21,7 +21,7 @@ public void setUp() { @Test public void testDefaultConstructor() { assertEquals(ShLanguage.JAVA, syntaxHighlighter.getSHLanguage()); - assertEquals(SHStyle.A11YDARK, syntaxHighlighter.getSHStyle()); + assertEquals(ShStyle.A11YDARK, syntaxHighlighter.getShStyle()); assertEquals("", syntaxHighlighter.getContent()); assertFalse(syntaxHighlighter.isShowLineNumbers()); assertFalse(syntaxHighlighter.isWrapLongLines()); @@ -32,7 +32,7 @@ public void testParameterizedConstructor() { SyntaxHighlighter sh = new SyntaxHighlighter(ShLanguage.JAVASCRIPT, "test"); assertEquals(ShLanguage.JAVASCRIPT, sh.getSHLanguage()); - assertEquals(SHStyle.A11YDARK, sh.getSHStyle()); + assertEquals(ShStyle.A11YDARK, sh.getShStyle()); assertEquals("test", sh.getContent()); assertFalse(sh.isShowLineNumbers()); assertFalse(sh.isWrapLongLines()); @@ -41,13 +41,13 @@ public void testParameterizedConstructor() { @Test public void testSettersAndGetters() { syntaxHighlighter.setSHLanguage(ShLanguage.PYTHON); - syntaxHighlighter.setSHStyle(SHStyle.A11YDARK); + syntaxHighlighter.setShStyle(ShStyle.A11YDARK); syntaxHighlighter.setContent("test content"); syntaxHighlighter.setShowLineNumbers(true); syntaxHighlighter.setWrapLongLines(true); assertEquals(ShLanguage.PYTHON, syntaxHighlighter.getSHLanguage()); - assertEquals(SHStyle.A11YDARK, syntaxHighlighter.getSHStyle()); + assertEquals(ShStyle.A11YDARK, syntaxHighlighter.getShStyle()); assertEquals("test content", syntaxHighlighter.getContent()); assertTrue(syntaxHighlighter.isShowLineNumbers()); assertTrue(syntaxHighlighter.isWrapLongLines()); From 9be66efc4753ca36ea25c404da79826ab5d36061 Mon Sep 17 00:00:00 2001 From: Martin Lopez Date: Tue, 13 Aug 2024 11:43:27 -0300 Subject: [PATCH 40/41] refactor: use correct camel case capitalization for SHStylePrism class --- .../{SHStylePrism.java => ShStylePrism.java} | 4 ++-- .../syntaxhighlighter/SyntaxHighlighterPrism.java | 8 ++++---- .../syntaxhighlighter/SyntaxHighlighterPrismDemo.java | 8 ++++---- .../test/SyntaxHighlighterPrismTest.java | 10 +++++----- 4 files changed, 15 insertions(+), 15 deletions(-) rename src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/{SHStylePrism.java => ShStylePrism.java} (97%) diff --git a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SHStylePrism.java b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/ShStylePrism.java similarity index 97% rename from src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SHStylePrism.java rename to src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/ShStylePrism.java index 2b08455..dbb44de 100644 --- a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SHStylePrism.java +++ b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/ShStylePrism.java @@ -26,7 +26,7 @@ * @author mlopezFC * @since 1.0.0 */ -public enum SHStylePrism { +public enum ShStylePrism { COY("coy"), DARK("dark"), @@ -75,7 +75,7 @@ public enum SHStylePrism { private final String name; - private SHStylePrism(String style) { + private ShStylePrism(String style) { name = style; } diff --git a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrism.java b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrism.java index 1e704a2..7d664e2 100644 --- a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrism.java +++ b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrism.java @@ -51,7 +51,7 @@ public SyntaxHighlighterPrism() { * @param content The code content to highlight. */ public SyntaxHighlighterPrism(ShLanguagePrism language, String content) { - setSHStyle(SHStylePrism.A11YDARK); + setShStyle(ShStylePrism.A11YDARK); setShLanguage(language); setContent(content); setShowLineNumbers(false); @@ -78,15 +78,15 @@ public void setShLanguage(ShLanguagePrism language) { * Obtains the current SyntaxHighlighterPrism Style * @return */ - public SHStylePrism getSHStyle() { - return SHStylePrism.valueOf(getState("stylename", String.class).toUpperCase()); + public ShStylePrism getShStyle() { + return ShStylePrism.valueOf(getState("stylename", String.class).toUpperCase()); } /** * Sets the SyntaxHighlighter Style * @param style */ - public void setSHStyle(SHStylePrism style) { + public void setShStyle(ShStylePrism style) { setState("stylename", style.getName()); } diff --git a/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrismDemo.java b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrismDemo.java index afcd8d4..6cc87bb 100644 --- a/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrismDemo.java +++ b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterPrismDemo.java @@ -50,12 +50,12 @@ public SyntaxHighlighterPrismDemo() { """; SyntaxHighlighterPrism sh = new SyntaxHighlighterPrism(ShLanguagePrism.JAVASCRIPT, defaultValue); sh.setSizeFull(); - ComboBox style = new ComboBox<>(); - style.setItems(SHStylePrism.values()); + ComboBox style = new ComboBox<>(); + style.setItems(ShStylePrism.values()); style.addValueChangeListener(ev->{ - sh.setSHStyle(style.getValue()); + sh.setShStyle(style.getValue()); }); - style.setValue(SHStylePrism.A11YDARK); + style.setValue(ShStylePrism.A11YDARK); ComboBox languages = new ComboBox<>(); languages.setItems(ShLanguagePrism.values()); languages.setItemLabelGenerator(language->language.getName()); diff --git a/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/test/SyntaxHighlighterPrismTest.java b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/test/SyntaxHighlighterPrismTest.java index 690a08e..37eb9ff 100644 --- a/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/test/SyntaxHighlighterPrismTest.java +++ b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/test/SyntaxHighlighterPrismTest.java @@ -4,7 +4,7 @@ import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import com.flowingcode.vaadin.addons.syntaxhighlighter.ShLanguagePrism; -import com.flowingcode.vaadin.addons.syntaxhighlighter.SHStylePrism; +import com.flowingcode.vaadin.addons.syntaxhighlighter.ShStylePrism; import com.flowingcode.vaadin.addons.syntaxhighlighter.SyntaxHighlighterPrism; import org.junit.Before; import org.junit.Test; @@ -21,7 +21,7 @@ public void setUp() { @Test public void testDefaultConstructor() { assertEquals(ShLanguagePrism.JAVA, syntaxHighlighter.getShLanguage()); - assertEquals(SHStylePrism.A11YDARK, syntaxHighlighter.getSHStyle()); + assertEquals(ShStylePrism.A11YDARK, syntaxHighlighter.getShStyle()); assertEquals("", syntaxHighlighter.getContent()); assertFalse(syntaxHighlighter.isShowLineNumbers()); assertFalse(syntaxHighlighter.isWrapLongLines()); @@ -32,7 +32,7 @@ public void testParameterizedConstructor() { SyntaxHighlighterPrism sh = new SyntaxHighlighterPrism(ShLanguagePrism.JAVASCRIPT, "test"); assertEquals(ShLanguagePrism.JAVASCRIPT, sh.getShLanguage()); - assertEquals(SHStylePrism.A11YDARK, sh.getSHStyle()); + assertEquals(ShStylePrism.A11YDARK, sh.getShStyle()); assertEquals("test", sh.getContent()); assertFalse(sh.isShowLineNumbers()); assertFalse(sh.isWrapLongLines()); @@ -41,13 +41,13 @@ public void testParameterizedConstructor() { @Test public void testSettersAndGetters() { syntaxHighlighter.setShLanguage(ShLanguagePrism.PYTHON); - syntaxHighlighter.setSHStyle(SHStylePrism.A11YDARK); + syntaxHighlighter.setShStyle(ShStylePrism.A11YDARK); syntaxHighlighter.setContent("test content"); syntaxHighlighter.setShowLineNumbers(true); syntaxHighlighter.setWrapLongLines(true); assertEquals(ShLanguagePrism.PYTHON, syntaxHighlighter.getShLanguage()); - assertEquals(SHStylePrism.A11YDARK, syntaxHighlighter.getSHStyle()); + assertEquals(ShStylePrism.A11YDARK, syntaxHighlighter.getShStyle()); assertEquals("test content", syntaxHighlighter.getContent()); assertTrue(syntaxHighlighter.isShowLineNumbers()); assertTrue(syntaxHighlighter.isWrapLongLines()); From a9842e4d83d47297b2db36aaf001022fcfdfa7d4 Mon Sep 17 00:00:00 2001 From: Martin Lopez Date: Tue, 13 Aug 2024 11:52:42 -0300 Subject: [PATCH 41/41] refactor: fix capitalization of getters and setters of SHLanguage --- .../addons/syntaxhighlighter/SyntaxHighlighter.java | 6 +++--- .../addons/syntaxhighlighter/SyntaxHighlighterDemo.java | 2 +- .../syntaxhighlighter/test/SyntaxHighlighterTest.java | 8 ++++---- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighter.java b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighter.java index 6e50c0d..7b5111a 100644 --- a/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighter.java +++ b/src/main/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighter.java @@ -51,7 +51,7 @@ public SyntaxHighlighter() { */ public SyntaxHighlighter(ShLanguage language, String content) { setShStyle(ShStyle.A11YDARK); - setSHLanguage(language); + setShLanguage(language); setContent(content); setShowLineNumbers(false); setWrapLongLines(false); @@ -61,7 +61,7 @@ public SyntaxHighlighter(ShLanguage language, String content) { * Obtains the current SyntaxHighlighter Language * @return current language */ - public ShLanguage getSHLanguage() { + public ShLanguage getShLanguage() { return ShLanguage.valueOf(getState("language", String.class).toUpperCase()); } @@ -69,7 +69,7 @@ public ShLanguage getSHLanguage() { * Sets the SyntaxHighlighter Language * @param language */ - public void setSHLanguage(ShLanguage language) { + public void setShLanguage(ShLanguage language) { setState("language", language.getName()); } diff --git a/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterDemo.java b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterDemo.java index b7719f4..4b648a3 100644 --- a/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterDemo.java +++ b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/SyntaxHighlighterDemo.java @@ -61,7 +61,7 @@ public SyntaxHighlighterDemo() { languages.setItemLabelGenerator(language->language.getName()); languages.setValue(ShLanguage.JAVASCRIPT); languages.addValueChangeListener(ev->{ - sh.setSHLanguage(ev.getValue()); + sh.setShLanguage(ev.getValue()); }); Checkbox showLineNumbers = new Checkbox("Show Line Numbers"); showLineNumbers.addValueChangeListener(ev->{ diff --git a/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/test/SyntaxHighlighterTest.java b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/test/SyntaxHighlighterTest.java index 5e5afd7..7248b9c 100644 --- a/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/test/SyntaxHighlighterTest.java +++ b/src/test/java/com/flowingcode/vaadin/addons/syntaxhighlighter/test/SyntaxHighlighterTest.java @@ -20,7 +20,7 @@ public void setUp() { @Test public void testDefaultConstructor() { - assertEquals(ShLanguage.JAVA, syntaxHighlighter.getSHLanguage()); + assertEquals(ShLanguage.JAVA, syntaxHighlighter.getShLanguage()); assertEquals(ShStyle.A11YDARK, syntaxHighlighter.getShStyle()); assertEquals("", syntaxHighlighter.getContent()); assertFalse(syntaxHighlighter.isShowLineNumbers()); @@ -31,7 +31,7 @@ public void testDefaultConstructor() { public void testParameterizedConstructor() { SyntaxHighlighter sh = new SyntaxHighlighter(ShLanguage.JAVASCRIPT, "test"); - assertEquals(ShLanguage.JAVASCRIPT, sh.getSHLanguage()); + assertEquals(ShLanguage.JAVASCRIPT, sh.getShLanguage()); assertEquals(ShStyle.A11YDARK, sh.getShStyle()); assertEquals("test", sh.getContent()); assertFalse(sh.isShowLineNumbers()); @@ -40,13 +40,13 @@ public void testParameterizedConstructor() { @Test public void testSettersAndGetters() { - syntaxHighlighter.setSHLanguage(ShLanguage.PYTHON); + syntaxHighlighter.setShLanguage(ShLanguage.PYTHON); syntaxHighlighter.setShStyle(ShStyle.A11YDARK); syntaxHighlighter.setContent("test content"); syntaxHighlighter.setShowLineNumbers(true); syntaxHighlighter.setWrapLongLines(true); - assertEquals(ShLanguage.PYTHON, syntaxHighlighter.getSHLanguage()); + assertEquals(ShLanguage.PYTHON, syntaxHighlighter.getShLanguage()); assertEquals(ShStyle.A11YDARK, syntaxHighlighter.getShStyle()); assertEquals("test content", syntaxHighlighter.getContent()); assertTrue(syntaxHighlighter.isShowLineNumbers());