fcl-md: fenced code block with Lang Id
``` procedure TTestCodeBlocks.TestFencedCodeBlock; var Block: TMarkDownCodeBlock; begin SetupParser('```'#10'code here'#10'```'); AssertEquals('Document should have 1 block', 1, Doc.Blocks.Count); Block := GetBlock(0) as TMarkDownCodeBlock; AssertNotNull('Block should be a code block', Block); AssertTrue('Should be a fenced code block', Block.Fenced); end; ``` I dont see here a test for such thing: ``` (tick)(tick)(tick)cpp C++ code here (tick)(tick)(tick) ``` it's the fenced block with lang Id. https://wiki.freepascal.org/CudaText#Fenced_code-blocks possible lang Ids which I found for my project, are these: ``` ; This file supports https://wiki.freepascal.org/CudaText#Fenced_code-blocks ; Initially taken from: ; https://github.com/highlightjs/highlight.js/blob/main/SUPPORTED_LANGUAGES.md [a] 1c=1C abap=ABAP actionscript=ActionScript ada=Ada adoc=AsciiDoc apache=Apache config apacheconf=Apache config applescript=AppleScript arduino=Arduino arm=Assembly ARM armasm=Assembly ARM as=ActionScript asciidoc=AsciiDoc atom=XML autohotkey=AutoHotkey autoit=AutoIt avrasm=Assembly AVR awk=AWK bash=Bash script bat=Batch files batch=Batch files bf=Brainfuck blade=HTML Laravel Blade brainfuck=Brainfuck c++=C++ c=C carbon=Carbon cc=C++ clj=Clojure clojure=Clojure cmake=CMake cmd=Batch files coffee=CoffeeScript coffeescript=CoffeeScript coq=Coq cpp=C++ cr=Crystal craftcms=Twig crystal=Crystal cs=C# csharp=C# cshtml=Razor cson=CoffeeScript css=CSS cxx=C++ d=D dart=Dart dfm=Delphi resources diff=Diff django=HTML Django DTL docker=Dockerfile dockerfile=Dockerfile dos=Batch files dpr=Pascal elixir=Elixir elm=Elm erl=Erlang erlang=Erlang f90=Fortran f95=Fortran felix=Felix fortran=Fortran fs=F# fsharp=F# gams=GAMS gawk=AWK gcode=G-code gdscript=GDScript gemspec=Ruby gherkin=Gherkin glsl=GLSL gms=GAMS go=Go godot=GDScript golang=Go gradle=Gradle groovy=Groovy gyp=Python h++=C++ h=C haml=Haml handlebars=HTML Handlebars haskell=Haskell haxe=Haxe hbs=HTML Handlebars hh=C++ hlsl=HLSL hpp=C++ hs=Haskell html.handlebars=HTML Handlebars html.hbs=HTML Handlebars html=HTML hx=Haxe hxx=C++ iced=CoffeeScript iecst=Structured Text ini=Ini files ino=Arduino irb=Ruby java=Java javascript=JavaScript jinja=Jinja2 js=JavaScript json=JSON jsp=Java jsx=JavaScript Babel julia-repl=Julia julia=Julia kotlin=Kotlin kt=Kotlin less=LESS lisp=Lisp lua=Lua mak=Makefile make=Makefile makefile=Makefile markdown=Markdown matlab=MATLAB mawk=AWK md=Markdown mel=Maya mk=Makefile mkd=Markdown mkdown=Markdown ml=OCaml mm=Objective-C nawk=AWK nc=G-code nginx=Nginx nginxconf=Nginx nim=Nim nimrod=Nim nix=Nix nsis=NSIS obj-c++=Objective-C obj-c=Objective-C objc=Objective-C objective-c++=Objective-C objectivec=Objective-C ocaml=OCaml openscad=OpenSCAD osascript=AppleScript papyrus=Papyrus parser3=Parser3 pas=Pascal pascal=Pascal patch=Diff perl=Perl php=PHP_ pl=Perl plist=XML pm=Perl podspec=Ruby pony=Pony powershell=PowerShell pp=Puppet prolog=Prolog properties=Properties ps1=PowerShell ps=PowerShell psc=Papyrus puppet=Puppet py=Python python=Python qml=QML r=R razor-cshtml=Razor razor=Razor rb=Ruby re=ReasonML reasonml=ReasonML rebol=Red red-system=Red red=Red redbol=Red rs=Rust rss=XML ruby=Ruby rust=Rust sass=Sass scad=OpenSCAD scala=Scala scheme=Scheme sci=Scilab scilab=Scilab scss=SCSS sh=Bash script shell=Bash script smalltalk=Smalltalk sol=Solidity solidity=Solidity sql=SQL,T-SQL st=Smalltalk stata=Stata styl=Stylus stylus=Stylus svelte=Svelte svg=XML swift=Swift tcl=Tcl tex=LaTeX thor=Ruby tk=Tcl toml=TOML ts=TypeScript tsql=T-SQL twig=Twig typescript=TypeScript v=Verilog HDL vala=Vala vbs=VBScript vbscript=VBScript verilog=Verilog HDL vhdl=VHDL vim=VimL x86asm=Assembly xhtml=HTML xml=XML xsd=XML xsl=XML yaml=YAML yml=YAML zenscript=ZenScript (MineTweaker) zep=Zephir zephir=Zephir zig=Zig zs=ZenScript (MineTweaker) zsh=Bash script ``` of course, new appeared langs may give new lang Ids.
issue