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.

Edited by Alexey Torgashin