<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Markdown Lexer]]></title><description><![CDATA[<p dir="auto">I have the Markdown User Defined Language and that works OK, but looking at Scintilla docs, there seems to be a built-in Markdown lexer included at least as far back as 4.1.2 which is what I <em>believe</em> N++ was “recently” upgraded to.</p>
<p dir="auto">Using NppExec, I can set the Lexer type to “markdown” and not receive an error like I do when setting to a bogus language:</p>
<pre><code>================ READY ================
SCI_SENDMSG SCI_SETLEXERLANGUAGE 0 "markdown"
================ READY ================
SCI_SENDMSG SCI_GETLEXERLANGUAGE 0 @""
================ READY ================
ECHO $(MSG_LPARAM)
markdown
================ READY ================
SCI_SENDMSG SCI_SETLEXERLANGUAGE 0 "nonexistLang"
================ READY ================
SCI_SENDMSG SCI_GETLEXERLANGUAGE 0 @""
================ READY ================
ECHO $(MSG_LPARAM)
null
================ READY ================
</code></pre>
<p dir="auto">I tried adding the values to my theme but it seems there’s a N++ middle-man I’m missing - somehow I have to tell N++ to use “markdown” as the language, but N++ does not have that in its languages - hence the UDL.</p>
<p dir="auto">Is there a reason N++ doesn’t add “Markdown” as a valid language and use the Scintilla lexer rather than forcing a UDL solution?  Just curious - maybe there’s some history I’m not aware of or missed discussions on this forum or GitHub issues?</p>
<p dir="auto">Cheers.</p>
]]></description><link>https://community.notepad-plus-plus.org/topic/19510/markdown-lexer</link><generator>RSS for Node</generator><lastBuildDate>Sun, 19 Apr 2026 08:03:13 GMT</lastBuildDate><atom:link href="https://community.notepad-plus-plus.org/topic/19510.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 04 Jun 2020 14:03:18 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Markdown Lexer on Tue, 16 Jun 2020 21:13:15 GMT]]></title><description><![CDATA[<p dir="auto">Hello, <a class="plugin-mentions-user plugin-mentions-a" href="https://community.notepad-plus-plus.org/uid/14847">@michael-vincent</a>, <a class="plugin-mentions-user plugin-mentions-a" href="https://community.notepad-plus-plus.org/uid/7377">@alan-kilborn</a>, <a class="plugin-mentions-user plugin-mentions-a" href="https://community.notepad-plus-plus.org/uid/14479">@ekopalypse</a>, <a class="plugin-mentions-user plugin-mentions-a" href="https://community.notepad-plus-plus.org/uid/3841">@peterjones</a> and <strong>All</strong>,</p>
<p dir="auto">Here is my own <strong>Markdown test</strong> style ;-))</p>
<ul>
<li>
<p dir="auto">First, it may give you some <strong>hints</strong> about the way to realize some <strong>specific</strong> things, on our <strong><code>NodeBB Notepad++</code></strong> forum</p>
</li>
<li>
<p dir="auto">Secondly, you may use it to <strong>test</strong> a <strong><code>Markdown</code></strong> <strong>lexer</strong> or <strong>UDL</strong></p>
</li>
</ul>
<hr />
<p dir="auto">So, this raw <strong>input</strong> text, below :</p>
<pre><code class="language-z">#### FONT styles :
¯¯¯¯¯¯¯¯¯¯¯

DEFAULT text

*Italic1*
_Italic2_

**STRONG1**
__STRONG2__

***STRONG_italic1***
___STRONG_italic2___

~~Strikethrough~~

`Monospace`

``There are LITERAL `back-ticks`  here !``


#### HEADERS :
¯¯¯¯¯¯¯¯¯¯

Header H1
=========

Header H2
---------

and

# Header H1
## Header H2
### Header H3 ###
#### Header H4
##### Header H5
###### Header H6 #


#### NON-ORDERED lists :
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

* First item
* Second item
  - Third item
  - Fourth item
    + Fifth item
    + Sixth item
  - Seventh item
  - Eighth item
* Ninth item
* Tenth item

#### ORDERED lists :
¯¯¯¯¯¯¯¯¯¯¯¯¯¯

1. First item
2. Second item
2020\. What a year !
3. Third item
999. Last item


#### Block QUOTES :
¯¯¯¯¯¯¯¯¯¯¯¯¯¯

&gt; This is the **first** level of quoting.
&gt;
&gt; &gt; **Second** level : this is
  a **nested**
blockquote.
&gt;
&gt;Back to
the **first** level.

&gt; **Second**
  block quote
  test

&gt; #### **`Third`** block quote
&gt;
&gt; &gt; 1.   This is the **first** list item.
&gt; &gt; 2.   This is the **second** list item.
&gt; &gt;
&gt; &gt; Here's some example **code**:
&gt; &gt;
&gt; &gt;     return shell_exec("echo $input | $markdown_script");
&gt; This is the
end of the **first** level


#### CODE blocks :
¯¯¯¯¯¯¯¯¯¯¯¯

With **`4` leading** spaces :

    static int isPalindrome(int item)
    {
        int rev = 0;
        int rem = 0;
        int num = item;
    
        while (num &gt; 0)
        {
            rem = num % 10;
            rev = rev * 10 + rem;
            num = num / 10;
        }
    }

By **default** ( identical ) :

~~~
static int isPalindrome(int item)
{
    int rev = 0;
    int rem = 0;
    int num = item;

    while (num &gt; 0)
    {
        rem = num % 10;
        rev = rev * 10 + rem;
        num = num / 10;
    }
}
~~~

With **`CPP` language** specified :

~~~cpp
static int isPalindrome(int item)
{
    int rev = 0;
    int rem = 0;
    int num = item;

    while (num &gt; 0)
    {
        rem = num % 10;
        rev = rev * 10 + rem;
        num = num / 10;
    }
}
~~~

**Without** any language **extension** :

~~~no
static int isPalindrome(int item)
{
    int rev = 0;
    int rem = 0;
    int num = item;

    while (num &gt; 0)
    {
        rem = num % 10;
        rev = rev * 10 + rem;
        num = num / 10;
    }
}
~~~


#### HORIZONTAL rules ( *** or --- or ___ )
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

Before the **rule**

---

After the **rule**


#### LINKS :
¯¯¯¯¯¯

**In-line**-style  links :

This is the [1st link](https://example.com/) example

This is the [2nd link](https://tests.com/ "Hovered Text") example

**Reference**-style links :

This is the [1st Reference][id1] style link

[id1]: &lt;https://tests.com/&gt;
[id2]: https://example.com/  "Hovered Text"

This is the [2nd reference][id2] style link

**Implicit**-style link :

The [Daring Fireball][] site

[Daring Fireball]: https://daringfireball.net/ (Daring Fireball Site)


#### PICTURES :
¯¯¯¯¯¯¯¯¯¯

**In-line**-style image :

![](https://imgur.com/P0GFeMF.jpg)

The *same* **in-line** image with **hovered** text

![](https://imgur.com/P0GFeMF.jpg "Winter Landscape")



**Reference-style** image ( **Notepad++** animation ) :

 ![][id3]

[id3]: https://i.imgur.com/HvBd52m.gif
[id4]: &lt;https://i.imgur.com/HvBd52m.gif&gt; 'RENUMBERING with RECTANGULAR selection'

The *same* animation, with **hovered** text

![][id4]


#### AUTOMATIC links :
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

&lt;https://www.google.fr/&gt;

&lt;xxx.xxx.xxx@gmail.com&gt;


#### ESCAPED characters :
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

a LITERAL backslash **\\** character
a LITERAL back-tick **\`** character
a LITERAL asterisk **\*** character
a LITERAL underscore **\_** character
a LITERAL opening curly brace **\{** character
a LITERAL ending  curly brace **\}** character
a LITERAL opening square bracket **\[** character
a LITERAL ending  square bracket **\]** character
a LITERAL opening parenthesis **\(** character
a LITERAL ending  parenthesis **\)** character
a LITERAL hash mark **\#** character
a LITERAL plus sign **\+** character
a LITERAL minus sign (hyphen) **\-** character
a LITERAL dot **\.** character
a LITERAL exclamation mark **\!** character


#### TABLES :
¯¯¯¯¯¯¯¯

**`6`** **columns**, so **`7`** **delimiters** (  character **`|`**)

| Name | AgeM | AgeF | Occupation | ABC |Xyz|
|-|:-:|:-:|-|:-|-:|
| John COOMBE | 60 | | Farmer | | Y |
| Joseph COOMBE | 28 | | | Y | Y |

| Elizabeth COOMBE | | 22 | | Y |N|
| | | | | | |
| George COOMBE | 16 | | |N| Y |
| Richard COOMBE | 14 | | |N|N|
|.|.|.|.|.|.|
| Christopher COOMBE | 11 | | | Y ||
| Francis COOMBE | 2 | | | ||

That's **ALL** !
</code></pre>
<hr />
<p dir="auto">Should produce this <strong>output</strong> :</p>
<h4>FONT styles :</h4>
<p dir="auto">¯¯¯¯¯¯¯¯¯¯¯</p>
<p dir="auto">DEFAULT text</p>
<p dir="auto"><em>Italic1</em><br />
<em>Italic2</em></p>
<p dir="auto"><strong>STRONG1</strong><br />
<strong>STRONG2</strong></p>
<p dir="auto"><em><strong>STRONG_italic1</strong></em><br />
<em><strong>STRONG_italic2</strong></em></p>
<p dir="auto"><s>Strikethrough</s></p>
<p dir="auto"><code>Monospace</code></p>
<p dir="auto"><code>There are LITERAL `back-ticks`  here !</code></p>
<h4>HEADERS :</h4>
<p dir="auto">¯¯¯¯¯¯¯¯¯¯</p>
<h1>Header H1</h1>
<h2>Header H2</h2>
<p dir="auto">and</p>
<h1>Header H1</h1>
<h2>Header H2</h2>
<h3>Header H3</h3>
<h4>Header H4</h4>
<h5>Header H5</h5>
<h6>Header H6</h6>
<h4>NON-ORDERED lists :</h4>
<p dir="auto">¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯</p>
<ul>
<li>First item</li>
<li>Second item
<ul>
<li>Third item</li>
<li>Fourth item
<ul>
<li>Fifth item</li>
<li>Sixth item</li>
</ul>
</li>
<li>Seventh item</li>
<li>Eighth item</li>
</ul>
</li>
<li>Ninth item</li>
<li>Tenth item</li>
</ul>
<h4>ORDERED lists :</h4>
<p dir="auto">¯¯¯¯¯¯¯¯¯¯¯¯¯¯</p>
<ol>
<li>First item</li>
<li>Second item<br />
2020. What a year !</li>
<li>Third item</li>
<li>Last item</li>
</ol>
<h4>Block QUOTES :</h4>
<p dir="auto">¯¯¯¯¯¯¯¯¯¯¯¯¯¯</p>
<blockquote>
<p dir="auto">This is the <strong>first</strong> level of quoting.</p>
<blockquote>
<p dir="auto"><strong>Second</strong> level : this is<br />
a <strong>nested</strong><br />
blockquote.</p>
</blockquote>
<p dir="auto">Back to<br />
the <strong>first</strong> level.</p>
</blockquote>
<blockquote>
<p dir="auto"><strong>Second</strong><br />
block quote<br />
test</p>
</blockquote>
<blockquote>
<h4><strong><code>Third</code></strong> block quote</h4>
<blockquote>
<ol>
<li>This is the <strong>first</strong> list item.</li>
<li>This is the <strong>second</strong> list item.</li>
</ol>
<p dir="auto">Here’s some example <strong>code</strong>:</p>
<pre><code>return shell_exec("echo $input | $markdown_script");
</code></pre>
</blockquote>
<p dir="auto">This is the<br />
end of the <strong>first</strong> level</p>
</blockquote>
<h4>CODE blocks :</h4>
<p dir="auto">¯¯¯¯¯¯¯¯¯¯¯¯</p>
<p dir="auto">With <strong><code>4</code> leading</strong> spaces :</p>
<pre><code>static int isPalindrome(int item)
{
    int rev = 0;
    int rem = 0;
    int num = item;

    while (num &gt; 0)
    {
        rem = num % 10;
        rev = rev * 10 + rem;
        num = num / 10;
    }
}
</code></pre>
<p dir="auto">By <strong>default</strong> ( identical ) :</p>
<pre><code>static int isPalindrome(int item)
{
    int rev = 0;
    int rem = 0;
    int num = item;

    while (num &gt; 0)
    {
        rem = num % 10;
        rev = rev * 10 + rem;
        num = num / 10;
    }
}
</code></pre>
<p dir="auto">With <strong><code>CPP</code> language</strong> specified :</p>
<pre><code class="language-cpp">static int isPalindrome(int item)
{
    int rev = 0;
    int rem = 0;
    int num = item;

    while (num &gt; 0)
    {
        rem = num % 10;
        rev = rev * 10 + rem;
        num = num / 10;
    }
}
</code></pre>
<p dir="auto"><strong>Without</strong> any language <strong>extension</strong> :</p>
<pre><code class="language-no">static int isPalindrome(int item)
{
    int rev = 0;
    int rem = 0;
    int num = item;

    while (num &gt; 0)
    {
        rem = num % 10;
        rev = rev * 10 + rem;
        num = num / 10;
    }
}
</code></pre>
<h4>HORIZONTAL rules ( *** or — or ___ )</h4>
<p dir="auto">¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯</p>
<p dir="auto">Before the <strong>rule</strong></p>
<hr />
<p dir="auto">After the <strong>rule</strong></p>
<h4>LINKS :</h4>
<p dir="auto">¯¯¯¯¯¯</p>
<p dir="auto"><strong>In-line</strong>-style  links :</p>
<p dir="auto">This is the <a href="https://example.com/" rel="nofollow ugc">1st link</a> example</p>
<p dir="auto">This is the <a href="https://tests.com/" title="Hovered Text" rel="nofollow ugc">2nd link</a> example</p>
<p dir="auto"><strong>Reference</strong>-style links :</p>
<p dir="auto">This is the <a href="https://tests.com/" rel="nofollow ugc">1st Reference</a> style link</p>
<p dir="auto">This is the <a href="https://example.com/" title="Hovered Text" rel="nofollow ugc">2nd reference</a> style link</p>
<p dir="auto"><strong>Implicit</strong>-style link :</p>
<p dir="auto">The <a href="https://daringfireball.net/" title="Daring Fireball Site" rel="nofollow ugc">Daring Fireball</a> site</p>
<h4>PICTURES :</h4>
<p dir="auto">¯¯¯¯¯¯¯¯¯¯</p>
<p dir="auto"><strong>In-line</strong>-style image :</p>
<p dir="auto"><img src="https://camo.nodebb.org/121171e401e6c7baa2320c2414b428693c295e9f?url=https%3A%2F%2Fimgur.com%2FP0GFeMF.jpg" alt="" class=" img-fluid img-markdown" /></p>
<p dir="auto">The <em>same</em> <strong>in-line</strong> image with <strong>hovered</strong> text</p>
<p dir="auto"><img src="https://camo.nodebb.org/121171e401e6c7baa2320c2414b428693c295e9f?url=https%3A%2F%2Fimgur.com%2FP0GFeMF.jpg" alt="" title="Winter Landscape" class=" img-fluid img-markdown" /></p>
<p dir="auto"><strong>Reference-style</strong> image ( <strong>Notepad++</strong> animation ) :</p>
<p dir="auto"><img src="https://camo.nodebb.org/62d4a1821be9fb37319fe6f13ba42b635ed51517?url=https%3A%2F%2Fi.imgur.com%2FHvBd52m.gif" alt="" class=" img-fluid img-markdown" /></p>
<p dir="auto">The <em>same</em> animation, with <strong>hovered</strong> text</p>
<p dir="auto"><img src="https://camo.nodebb.org/62d4a1821be9fb37319fe6f13ba42b635ed51517?url=https%3A%2F%2Fi.imgur.com%2FHvBd52m.gif" alt="" title="RENUMBERING with RECTANGULAR selection" class=" img-fluid img-markdown" /></p>
<h4>AUTOMATIC links :</h4>
<p dir="auto">¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯</p>
<p dir="auto"><a href="https://www.google.fr/" rel="nofollow ugc">https://www.google.fr/</a></p>
<p dir="auto"><a href="mailto:xxx.xxx.xxx@gmail.com" rel="nofollow ugc">xxx.xxx.xxx@gmail.com</a></p>
<h4>ESCAPED characters :</h4>
<p dir="auto">¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯</p>
<p dir="auto">a LITERAL backslash <strong>\</strong> character<br />
a LITERAL back-tick <strong>`</strong> character<br />
a LITERAL asterisk <strong>*</strong> character<br />
a LITERAL underscore <strong>_</strong> character<br />
a LITERAL opening curly brace <strong>{</strong> character<br />
a LITERAL ending  curly brace <strong>}</strong> character<br />
a LITERAL opening square bracket <strong>[</strong> character<br />
a LITERAL ending  square bracket <strong>]</strong> character<br />
a LITERAL opening parenthesis <strong>(</strong> character<br />
a LITERAL ending  parenthesis <strong>)</strong> character<br />
a LITERAL hash mark <strong>#</strong> character<br />
a LITERAL plus sign <strong>+</strong> character<br />
a LITERAL minus sign (hyphen) <strong>-</strong> character<br />
a LITERAL dot <strong>.</strong> character<br />
a LITERAL exclamation mark <strong>!</strong> character</p>
<h4>TABLES :</h4>
<p dir="auto">¯¯¯¯¯¯¯¯</p>
<p dir="auto"><strong><code>6</code></strong> <strong>columns</strong>, so <strong><code>7</code></strong> <strong>delimiters</strong> (  character <strong><code>|</code></strong>)</p>
<ul>
<li>Columns <strong><code>1, 4, 5</code></strong> are <strong>default left</strong> justified</li>
<li>Column <strong><code>6</code></strong> is <strong>right</strong> justified</li>
<li>Columns <strong><code>2,3</code></strong> are <strong>centered</strong></li>
</ul>
<hr />
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>Name</th>
<th style="text-align:center">AgeM</th>
<th style="text-align:center">AgeF</th>
<th>Occupation</th>
<th style="text-align:left">ABC</th>
<th style="text-align:right">Xyz</th>
</tr>
</thead>
<tbody>
<tr>
<td>John COOMBE</td>
<td style="text-align:center">60</td>
<td style="text-align:center"></td>
<td>Farmer</td>
<td style="text-align:left"></td>
<td style="text-align:right">Y</td>
</tr>
<tr>
<td>Joseph COOMBE</td>
<td style="text-align:center">28</td>
<td style="text-align:center"></td>
<td></td>
<td style="text-align:left">Y</td>
<td style="text-align:right">Y</td>
</tr>
</tbody>
<tbody>
<tr>
<td>Elizabeth COOMBE</td>
<td style="text-align:center"></td>
<td style="text-align:center">22</td>
<td></td>
<td style="text-align:left">Y</td>
<td style="text-align:right">N</td>
</tr>
<tr>
<td></td>
<td style="text-align:center"></td>
<td style="text-align:center"></td>
<td></td>
<td style="text-align:left"></td>
<td style="text-align:right"></td>
</tr>
<tr>
<td>George COOMBE</td>
<td style="text-align:center">16</td>
<td style="text-align:center"></td>
<td></td>
<td style="text-align:left">N</td>
<td style="text-align:right">Y</td>
</tr>
<tr>
<td>Richard COOMBE</td>
<td style="text-align:center">14</td>
<td style="text-align:center"></td>
<td></td>
<td style="text-align:left">N</td>
<td style="text-align:right">N</td>
</tr>
<tr>
<td>.</td>
<td style="text-align:center">.</td>
<td style="text-align:center">.</td>
<td>.</td>
<td style="text-align:left">.</td>
<td style="text-align:right">.</td>
</tr>
<tr>
<td>Christopher COOMBE</td>
<td style="text-align:center">11</td>
<td style="text-align:center"></td>
<td></td>
<td style="text-align:left" colspan="2">Y</td>
</tr>
<tr>
<td>Francis COOMBE</td>
<td style="text-align:center">2</td>
<td style="text-align:center"></td>
<td></td>
<td style="text-align:left" colspan="2"></td>
</tr>
</tbody>
</table>
<p dir="auto">That’s <strong>ALL</strong> !</p>
<p dir="auto">BR</p>
<p dir="auto">guy038</p>
]]></description><link>https://community.notepad-plus-plus.org/post/54712</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/54712</guid><dc:creator><![CDATA[guy038]]></dc:creator><pubDate>Tue, 16 Jun 2020 21:13:15 GMT</pubDate></item><item><title><![CDATA[Reply to Markdown Lexer on Thu, 04 Jun 2020 20:01:10 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://community.notepad-plus-plus.org/uid/7377">@Alan-Kilborn</a></p>
<p dir="auto">left built-in, right UDL :-)</p>
]]></description><link>https://community.notepad-plus-plus.org/post/54663</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/54663</guid><dc:creator><![CDATA[Ekopalypse]]></dc:creator><pubDate>Thu, 04 Jun 2020 20:01:10 GMT</pubDate></item><item><title><![CDATA[Reply to Markdown Lexer on Thu, 04 Jun 2020 19:57:05 GMT]]></title><description><![CDATA[<blockquote>
<p dir="auto">Personally, I don’t use markdown very often</p>
</blockquote>
<p dir="auto">I don’t either, so maybe this isn’t a dumb question (I started it early and then cancelled):</p>
<p dir="auto">Which one above (left or right) is the built-in MD lexer and which one is the UDL MD lexer?<br />
Or maybe it still is a dumb question?</p>
]]></description><link>https://community.notepad-plus-plus.org/post/54662</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/54662</guid><dc:creator><![CDATA[Alan Kilborn]]></dc:creator><pubDate>Thu, 04 Jun 2020 19:57:05 GMT</pubDate></item><item><title><![CDATA[Reply to Markdown Lexer on Thu, 04 Jun 2020 19:38:34 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://community.notepad-plus-plus.org/uid/14847">@Michael-Vincent</a></p>
<blockquote>
<p dir="auto">Was hoping I could modify langs.xml</p>
</blockquote>
<p dir="auto">Not really, there are quite a few locations that I think need to be changed. Nothing complicated, but it has to be done.</p>
<p dir="auto">A scripting workaround could be done, but to be honest, from my point of view the UDL looks more stable.<br />
I’m not talking about the bold and/or italic font attributes or the fonts in general, you could do all that, but did you notice the glitch that the header1 was not colored and that bold italics, the last asterisks and underlines were not colored?</p>
<p dir="auto">Personally, I don’t use markdown very often.<br />
The update of the Npp API documentation I did was probably the biggest project with markdown language :-D</p>
]]></description><link>https://community.notepad-plus-plus.org/post/54661</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/54661</guid><dc:creator><![CDATA[Ekopalypse]]></dc:creator><pubDate>Thu, 04 Jun 2020 19:38:34 GMT</pubDate></item><item><title><![CDATA[Reply to Markdown Lexer on Thu, 04 Jun 2020 19:26:23 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://community.notepad-plus-plus.org/uid/14479">@Ekopalypse</a> said in <a href="/post/54659">Markdown Lexer</a>:</p>
<blockquote>
<p dir="auto">seems the built-in one does things differently</p>
</blockquote>
<p dir="auto">Nicely done!  Was hoping I could modify langs.xml and my theme to do it “automatically” after sending a Scintilla message, but that works.</p>
<p dir="auto">However, not sure I like the “built-in” highlighting.  Maybe I’m just used to seeing the UDL version?  What do others think?  Does anyone work with Markdown a lot - which lexer do you like better?</p>
<p dir="auto">Cheers.</p>
]]></description><link>https://community.notepad-plus-plus.org/post/54660</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/54660</guid><dc:creator><![CDATA[Michael Vincent]]></dc:creator><pubDate>Thu, 04 Jun 2020 19:26:23 GMT</pubDate></item><item><title><![CDATA[Reply to Markdown Lexer on Thu, 04 Jun 2020 19:09:05 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://community.notepad-plus-plus.org/uid/14847">@Michael-Vincent</a></p>
<p dir="auto">seems the built-in one does things differently</p>
<p dir="auto"><img src="/assets/uploads/files/1591297680179-ca7cbcc3-dabe-4ec1-9617-f4cb89da6bc7-image.png" alt="ca7cbcc3-dabe-4ec1-9617-f4cb89da6bc7-image.png" class=" img-fluid img-markdown" /></p>
<p dir="auto">to play with it I used this python code</p>
<pre><code>MARKDOWN_SYTLES = {
    0  : (180, 180, 180),  # SCE_MARKDOWN_DEFAULT
    1  : (255, 32 , 0),  # SCE_MARKDOWN_LINE_BEGIN
    2  : (255, 64 , 0),  # SCE_MARKDOWN_STRONG1
    3  : (255, 96 , 0),  # SCE_MARKDOWN_STRONG2
    4  : (255, 128, 0),  # SCE_MARKDOWN_EM1
    5  : (255, 160, 0),  # SCE_MARKDOWN_EM2
    6  : (255, 192, 0),  # SCE_MARKDOWN_HEADER1
    7  : (255, 224, 0),  # SCE_MARKDOWN_HEADER2
    8  : (255, 255, 0),  # SCE_MARKDOWN_HEADER3
    9  : (255, 0, 0  ),  # SCE_MARKDOWN_HEADER4
    10 : (255, 0, 32 ),  # SCE_MARKDOWN_HEADER5
    11 : (255, 0, 64 ),  # SCE_MARKDOWN_HEADER6
    12 : (255, 0, 96 ),  # SCE_MARKDOWN_PRECHAR
    13 : (255, 0, 128),  # SCE_MARKDOWN_ULIST_ITEM
    14 : (255, 0, 160),  # SCE_MARKDOWN_OLIST_ITEM
    15 : (255, 0, 192),  # SCE_MARKDOWN_BLOCKQUOTE
    16 : (255, 2, 224),  # SCE_MARKDOWN_STRIKEOUT
    17 : (255, 0, 255),  # SCE_MARKDOWN_HRULE
    18 : (255, 128, 128),  # SCE_MARKDOWN_LINK
    19 : (255, 128, 160),  # SCE_MARKDOWN_CODE
    20 : (255, 128, 192),  # SCE_MARKDOWN_CODE2
    21 : (255, 128, 224),  # SCE_MARKDOWN_CODEBK
}
editor.setLexer(98)
for _id, color in MARKDOWN_SYTLES.items():
    editor.styleSetFore(_id, color)
editor.colourise(0, -1)
</code></pre>
]]></description><link>https://community.notepad-plus-plus.org/post/54659</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/54659</guid><dc:creator><![CDATA[Ekopalypse]]></dc:creator><pubDate>Thu, 04 Jun 2020 19:09:05 GMT</pubDate></item><item><title><![CDATA[Reply to Markdown Lexer on Thu, 04 Jun 2020 16:04:15 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://community.notepad-plus-plus.org/uid/3841">@PeterJones</a> said in <a href="/post/54649">Markdown Lexer</a>:</p>
<blockquote>
<p dir="auto">Then again, maybe the Scintilla Markdown lexer isn’t great, which is why he’s stuck with his Markdown UDL</p>
</blockquote>
<p dir="auto">That’s what I was wondering about - any legends or lore from the ol’ timers (no offense) here.  Given I started using N++ around version 6.something and only started actively participating in this forum a few years ago, I’m sure this conversation was had, decided and moved on from.  Maybe it wasn’t documented though.</p>
<p dir="auto">Not big deal, the UDL Markdown works pretty well and with my modified <a href="https://github.com/vinsworldcom/NppMarkdownPanel" rel="nofollow ugc">NppMarkdownPanel</a>, the “live” view while editing Markdown works nicely.</p>
<p dir="auto">Cheers.</p>
]]></description><link>https://community.notepad-plus-plus.org/post/54651</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/54651</guid><dc:creator><![CDATA[Michael Vincent]]></dc:creator><pubDate>Thu, 04 Jun 2020 16:04:15 GMT</pubDate></item><item><title><![CDATA[Reply to Markdown Lexer on Thu, 04 Jun 2020 15:35:01 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://community.notepad-plus-plus.org/uid/14847">@Michael-Vincent</a> ,</p>
<blockquote>
<p dir="auto">I tried adding the values to my theme but it seems there’s a N++ middle-man</p>
</blockquote>
<p dir="auto">Apparently.  I thought maybe he just hadn’t included the markdown lexer in the NPP copy of Scintilla, but <a href="https://github.com/notepad-plus-plus/notepad-plus-plus/blob/37c4b894cc247d1ee6976bc1a1b66cfed4b7774e/scintilla/lexers/LexMarkdown.cxx" rel="nofollow ugc">it’s there</a><br />
(Then I realized if the SCI_SETLEXERLANGUAGE didn’t complain then <em>of course</em> it’s there.)</p>
<p dir="auto">So, there are two different ways to set the lexer.  Er, three, really</p>
<ol>
<li>As you showed, directly use the SCI_SETLEXERLANGUAGE, but that obviously skips any Notepad++ wrappers</li>
<li>Send the NPPM_SETBUFFERLANGTYPE <a href="https://npp-user-manual.org/docs/plugin-communication/#notepad-notifications" rel="nofollow ugc">Notepad++ Message</a>,<br />
which is implemented in <a href="https://github.com/notepad-plus-plus/notepad-plus-plus/blob/4738c96318418c7e338aa3c80ea2edfed81fa61c/PowerEditor/src/NppBigSwitch.cpp#L322-L333" rel="nofollow ugc">the Big Switch</a>, which then calls <a href="https://github.com/notepad-plus-plus/notepad-plus-plus/blob/a42c1674e9648b7cfc01484f3672b65f6762d7e2/PowerEditor/src/ScitillaComponent/Buffer.cpp#L129-L140" rel="nofollow ugc">scintilla’s `Buffer::setLangType()</a></li>
<li>Use the Language menu, which sends IDM_LANG_…, which are handled in <a href="https://github.com/notepad-plus-plus/notepad-plus-plus/blob/a42c1674e9648b7cfc01484f3672b65f6762d7e2/PowerEditor/src/ScitillaComponent/Buffer.cpp#L129-L140" rel="nofollow ugc"><code>NppCommands</code> about here</a>, and calls <code>setLanguage</code> , <code>langHasBeenSetFromMenu</code>, and <code>_pDocMap-&gt;setSyntaxHiliting()</code></li>
</ol>
<p dir="auto">The <code>setLangType</code> and <code>langHasBeenSetFromMenu</code> eventually send some <a href="https://www.scintilla.org/ScintillaDoc.html#Notifications" rel="nofollow ugc">Scintilla notifications</a>… <code>doNotify(BufferChangeLanguage|BufferChangeLexing)</code> and <code>doNotify(BufferChangeFilename | BufferChangeLanguage | BufferChangeTimestamp)</code>.  GitHub isn’t giving all the results when I search for <code>doNotify</code>, but I eventually found that it calls <a href="https://github.com/notepad-plus-plus/notepad-plus-plus/blob/fa51c2af6e3a162ea4c9b26c9c5422b8fffccb62/PowerEditor/src/Notepad_plus.cpp#L5112" rel="nofollow ugc">Notepad_plus::notifyBufferChanged</a></p>
<p dir="auto">I was hoping I would find a Scintilla and/or Notepad++ notification you could use to trigger a redraw or something.  But I haven’t found a smoking gun.</p>
<p dir="auto">Unfortunately, I cannot tell from the <code>notifyBufferChanged</code> what I would need to send in order to convince Notepad++ to do its wrapper stuff without overriding the SCI_SETLEXERLANGUAGE you just used.  Also, you would have to somehow define the colors from your script rather than the style configurator.</p>
<p dir="auto">You might want to just put in an issue to ask him to add a menu entry for the Scintilla 4.20 builtin Markdown Lexer and add it to the style configurator, and see what happens. :-)  Then again, maybe the Scintilla Markdown lexer isn’t great, which is why he’s stuck with his Markdown UDL (or he just is used to the Markdown UDL, and doesn’t want to change). ;-)</p>
]]></description><link>https://community.notepad-plus-plus.org/post/54649</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/54649</guid><dc:creator><![CDATA[PeterJones]]></dc:creator><pubDate>Thu, 04 Jun 2020 15:35:01 GMT</pubDate></item><item><title><![CDATA[Reply to Markdown Lexer on Thu, 04 Jun 2020 15:02:44 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://community.notepad-plus-plus.org/uid/7377">@Alan-Kilborn</a></p>
<p dir="auto">As you probably know, I’m an NppExec scripter and with the help of <a class="plugin-mentions-user plugin-mentions-a" href="https://community.notepad-plus-plus.org/uid/7192">@dinkumoil</a> I whipped up this little diddy:</p>
<pre><code>::npp
NPP_CONSOLE on
NPP_SENDMSG NPPM_GETNPPVERSION
SET LOCAL NPPMAJVER ~ int($(MSG_RESULT)/65536)
SET LOCAL NPPMINVER ~ $(MSG_RESULT)%65536

// Bitness from:  https://community.notepad-plus-plus.org/post/44021
NPE_CONSOLE -- m-
NPP_CONSOLE disable

NPE_CONSOLE -- v+
cmd.exe /c "for /f "tokens=1* delims==" %i in ('set ProgramFiles^(x86^) 2^&gt;NUL') do @echo %j"
SET LOCAL CALLRESULT = $(OUTPUT)
cmd.exe /c powershell -Command "(Get-Item $(NPP_DIRECTORY)\SciLexer.dll).VersionInfo.ProductVersion"
SET LOCAL SCIVER = $(OUTPUT)
NPE_CONSOLE -- v-

IF "$(CALLRESULT)"=="" THEN
    SET LOCAL BITNESS = 32
ELSE
    IF "$(CALLRESULT)"=="$(SYS.ProgramFiles)" THEN
        SET LOCAL BITNESS = 32
    ELSE
        SET LOCAL BITNESS = 64
    ENDIF
ENDIF

NPP_CONSOLE enable
ECHO Notepad++: $(NPPMAJVER).$(NPPMINVER) / $(BITNESS)-bit
ECHO Scintilla: $(SCIVER)
</code></pre>
<p dir="auto"><img src="/assets/uploads/files/1591282954368-cb2aee15-fc22-49e9-9362-e61ea348bebc-image.png" alt="cb2aee15-fc22-49e9-9362-e61ea348bebc-image.png" class=" img-fluid img-markdown" /></p>
<p dir="auto">Cheers.</p>
]]></description><link>https://community.notepad-plus-plus.org/post/54647</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/54647</guid><dc:creator><![CDATA[Michael Vincent]]></dc:creator><pubDate>Thu, 04 Jun 2020 15:02:44 GMT</pubDate></item><item><title><![CDATA[Reply to Markdown Lexer on Thu, 04 Jun 2020 14:58:26 GMT]]></title><description><![CDATA[<p dir="auto">Although…in the <em>Debug Info</em> it would never change for a specific version of N++, thus making it more of an “about Notepad++” kind of thing?</p>
<p dir="auto">BTW, Neil Hodgson need to update his copyright date.</p>
]]></description><link>https://community.notepad-plus-plus.org/post/54646</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/54646</guid><dc:creator><![CDATA[Alan Kilborn]]></dc:creator><pubDate>Thu, 04 Jun 2020 14:58:26 GMT</pubDate></item><item><title><![CDATA[Reply to Markdown Lexer on Thu, 04 Jun 2020 14:21:32 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://community.notepad-plus-plus.org/uid/7377">@Alan-Kilborn</a> said in <a href="/post/54641">Markdown Lexer</a>:</p>
<blockquote>
<p dir="auto">Sure would be nice to have that information in the Debug Info</p>
</blockquote>
<p dir="auto">LOL!!!</p>
<p dir="auto">4.2 - you’re right:</p>
<p dir="auto"><img src="/assets/uploads/files/1591280486667-04c00cfa-6e73-4a8e-9fb8-6e015b598edb-image.png" alt="04c00cfa-6e73-4a8e-9fb8-6e015b598edb-image.png" class=" img-fluid img-markdown" /></p>
]]></description><link>https://community.notepad-plus-plus.org/post/54642</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/54642</guid><dc:creator><![CDATA[Michael Vincent]]></dc:creator><pubDate>Thu, 04 Jun 2020 14:21:32 GMT</pubDate></item><item><title><![CDATA[Reply to Markdown Lexer on Thu, 04 Jun 2020 14:10:43 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://community.notepad-plus-plus.org/uid/14847">@Michael-Vincent</a> said in <a href="/post/54638">Markdown Lexer</a>:</p>
<blockquote>
<p dir="auto">Scintilla … 4.1.2 which is what I believe N++ was “recently” upgraded to.</p>
</blockquote>
<p dir="auto">I thought it was 4.20.<br />
Sure would be nice to have that information in the <em>Debug Info</em> (<a href="https://community.notepad-plus-plus.org/post/54637">echo, echo</a>, – note this is not Eko, Eko…) to remove any possible doubt.</p>
]]></description><link>https://community.notepad-plus-plus.org/post/54641</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/54641</guid><dc:creator><![CDATA[Alan Kilborn]]></dc:creator><pubDate>Thu, 04 Jun 2020 14:10:43 GMT</pubDate></item></channel></rss>