<?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[UDL: Number groups with negatives]]></title><description><![CDATA[<p dir="auto">Hello,</p>
<p dir="auto">I am currently creating a UDL. The language represents sets of numbers using a <code>/</code> separator, such as <code>0.674/1.4695/2.4317</code>.</p>
<p dir="auto">Highlighting works for groups such as <code>0.674/1.4695/2.4317</code> or <code>-0.674/1.4695/2.4317</code>. However,  highlighting stops when <code>-</code> is in the middle, like <code>0.674/-1.4695/2.4317</code>. Does anyone know why this is the case? Thank you!</p>
<pre><code>&lt;NotepadPlus&gt;
    &lt;UserLang name="Battlefield 2 (Dark)" ext="con tweak inc" udlVersion="2.1"&gt;
        &lt;Settings&gt;
            &lt;Global caseIgnored="yes" allowFoldOfComments="yes" foldCompact="no" forcePureLC="2" decimalSeparator="0" /&gt;
            &lt;Prefix Keywords1="yes" Keywords2="no" Keywords3="no" Keywords4="no" Keywords5="no" Keywords6="yes" Keywords7="no" Keywords8="no" /&gt;
        &lt;/Settings&gt;
        &lt;KeywordLists&gt;
            &lt;Keywords name="Comments"&gt;00rem 01 02 03beginrem 04endrem&lt;/Keywords&gt;
            &lt;Keywords name="Numbers, prefix1"&gt;&lt;/Keywords&gt;
            &lt;Keywords name="Numbers, prefix2"&gt;0 1 2 3 4 5 6 7 8 9 CRD_NONE CRD_UNIFORM CRD_NORMAL CRD_EXPONENTIAL&lt;/Keywords&gt;
            &lt;Keywords name="Numbers, extras1"&gt;/ - .&lt;/Keywords&gt;
            &lt;Keywords name="Numbers, extras2"&gt;&lt;/Keywords&gt;
            &lt;Keywords name="Numbers, suffix1"&gt;&lt;/Keywords&gt;
            &lt;Keywords name="Numbers, suffix2"&gt;&lt;/Keywords&gt;
            &lt;Keywords name="Numbers, range"&gt;&lt;/Keywords&gt;
            &lt;Keywords name="Operators1"&gt;-&amp;gt; &amp;lt;= &amp;gt;= &amp;lt; &amp;gt; == !=&lt;/Keywords&gt;
            &lt;Keywords name="Operators2"&gt;AND EQUAL OR NOT&lt;/Keywords&gt;
            &lt;Keywords name="Folders in code1, open"&gt;&lt;/Keywords&gt;
            &lt;Keywords name="Folders in code1, middle"&gt;&lt;/Keywords&gt;
            &lt;Keywords name="Folders in code1, close"&gt;&lt;/Keywords&gt;
            &lt;Keywords name="Folders in code2, open"&gt;if&lt;/Keywords&gt;
            &lt;Keywords name="Folders in code2, middle"&gt;elseIf else&lt;/Keywords&gt;
            &lt;Keywords name="Folders in code2, close"&gt;endIf&lt;/Keywords&gt;
            &lt;Keywords name="Folders in comment, open"&gt;---BeginComp:DefaultPenetrateComp ---BeginComp:DefaultRicochetComp ---BeginComp:DefaultProjSoundComp ---BeginComp:DefaultDetonationComp ---BeginComp:DefaultCollisionComp ---BeginComp:DefaultZoomComp ---BeginComp:DefaultAnimationComp ---BeginComp:DefaultSoundComp ---BeginComp:SimpleDeviationComp BeginComp:WeaponBasedRecoilComp ---BeginComp:DefaultAmmoComp ---BeginComp:SingleFireComp ---BeginComp:WeaponHud ---BeginComp:VehicleHud ---BeginComp:Armor ---BeginComp:Radio ---BeginComp:WarningHud ---BeginComp:ToggleCameraComp ---BeginComp:WeaponBasedRecoilComp ---BeginComp:MultiFireArmTargetComp ---BeginComp:LPTargetComp ---BeginComp:WindAffector ---BeginComp:MultiFireComp ---BeginComp:SoldierBasedRecoilComp ---BeginComp:SoldierDeviationComp ---BeginComp:Ik&lt;/Keywords&gt;
            &lt;Keywords name="Folders in comment, middle"&gt;&lt;/Keywords&gt;
            &lt;Keywords name="Folders in comment, close"&gt;---EndComp&lt;/Keywords&gt;
            &lt;Keywords name="Keywords1"&gt;admin. ai. aiPathfinding. aiSettings. aiStrategy. aiStrategicArea. AIStrategicArea. aiTemplate. aiTemplatePlugIn. animationBundle. animationManager. animationSystem. animationTrigger. animationValueHolder. AudioSettings. bf2Engine. BitStream. buffermanager. chat. CollisionCheck. collisionLog. CollisionManager. CombatArea. CombatAreaManager. commander. commanderInterface. commanderMenu. config. console. ControlMap. debug. debugCounterManager. decalManager. demo. Editor. envmapManager. fileChangeManager. fileManager. game. gameLogic. GameLogic. gameServerSettings. GeneralSettings. GeometryTemplate. GlobalSettings. heightmap. heightmapcluster. hemiMapManager. hudBuilder. hudItems. hudManager. ingameHelp. InputDevices. itemSelection. LevelSettings. levelsList. lightManager. Lightmanager. lightmapGeneration. LightmapSettings. LightSettings. localplayer. localProfile. mapList. MapList. Material. materialManager. memory. minimap. nametags. network. networkableInfo. Object. object. objectDrawer. objectManager. ObjectSpawnerDef. objectTemplate. ObjectTemplate. Overgrowth. OvergrowthType. Particles. particleSystemManager. physics. player. portal. profile. profiler. pythonHost. radio. radioInterface. radioVehicleInterface. ragDoll. rainManager. raStats. Renderer. renderer. reservedSlots. resourceManager. scoreboard. scoreManager. SettingsManager. shadermanager. shadowManager. skinnedMeshRenderer. skyDome. Skydome. Sound. sound. spawnManager. squad. squadInterface. squadLeader. squadLeaderInterface. squadManager. squadMenu. staticMeshRenderer. sv. swiffHost. terrain. terrainCuller. texturemanager. triggerManager. Undergrowth. undergrowthEditable. UndergrowthEditable. undergrowthEditableMaterial. undergrowthEditableType. Vars. vars. VideoSettings. voip. weatherManager. windManager.&lt;/Keywords&gt;
            &lt;Keywords name="Keywords2"&gt;var AirPlayerInputControlMap AnimatedBundle Armament Armor BottomLeftAnimate BottomLeftStatic BottomRightAnimate BottomRightStatic BundledMesh Camera ControlInfo ControlPoint SeekClosestTargetComp RotationalBundleDefaultAmmoComp DefaultAnimationComp DefaultAnimationComp DefaultZoomCompSound DefaultCollisionComp DefaultDetonationComp DefaultFollowComp defaultGameControlMap DefaultPenetrateComp defaultPlayerInputControlMap DefaultProjSoundComp DefaultRicochetComp DefaultSoundComp DefaultZoomComp EffectBundle EnvMap ExplosivesFireComp ForwardTrigger GenericFireArm GenericProjectile Global GrapplingHookRope GrapplingHookRopeContainer HandFireArmsInfo HelicopterPlayerInputControlMap Heightmap HeighmapCluster HookLink IdleTrigger InfantryPlayerInputControlMap IngameHud LadderContainer LandPlayerInputControlMap MessageTrigger Mobile MovementTrigger ObjectSpawner Physical PlayerControlObject PoseTrigger RandomTrigger ReplenishingAmmoComp RopeLink SeaPlayerInputControlMap SimpleObject SingleFireComp SoldierBasedRecoilComp SoldierDeviationComp Sound Spawnpoint StaticMesh StickyCollisionComp StrategicObject SupplyObject SwitchMessageTrigger SpawnPoint Terrain TerrainEditable ThrownAnimationComp ThrownFireComp TopLayer Trigger Triggerable TriggerableTarget TurnTrigger Unit VehicleHud WeaponHud ZiplineContainer ZiplineRope RotationalBundle Bundle Engine Spring GuiIndex Ik SimpleDeviationComp ToggleCameraComp WeaponBasedRecoilComp DefaultAmmoComp MultiFireComp MultiFireArmTargetComp LPTargetComp WindAffector Wing LandingGear&lt;/Keywords&gt;
            &lt;Keywords name="Keywords3"&gt;include run&lt;/Keywords&gt;
            &lt;Keywords name="Keywords4"&gt;PIYaw PIThrottle Mesh SpringInfo BasicInfo PIMouseLookY PIMouseLookX vehicle Medium RotationalPoint Point MTYVehicle RadialDir PIAltFire TSHeatSeeking PIFlareFire ControlPointInfo TTHeat&lt;/Keywords&gt;
            &lt;Keywords name="Keywords5"&gt;&lt;/Keywords&gt;
            &lt;Keywords name="Keywords6"&gt;v_ c_&lt;/Keywords&gt;
            &lt;Keywords name="Keywords7"&gt;&lt;/Keywords&gt;
            &lt;Keywords name="Keywords8"&gt;&lt;/Keywords&gt;
            &lt;Keywords name="Delimiters"&gt;00&amp;quot; 01 02&amp;quot; 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23&lt;/Keywords&gt;
        &lt;/KeywordLists&gt;
        &lt;Styles&gt;
            &lt;WordsStyle name="DEFAULT" fgColor="C8C8C8" bgColor="1A1A1A" colorStyle="1" fontStyle="0" fontSize="" nesting="0" /&gt;
            &lt;WordsStyle name="COMMENTS" fgColor="608B4E" bgColor="1E1E1E" colorStyle="1" fontStyle="0" nesting="0" /&gt;
            &lt;WordsStyle name="LINE COMMENTS" fgColor="608B4E" bgColor="1E1E1E" colorStyle="1" fontStyle="0" nesting="0" /&gt;
            &lt;WordsStyle name="NUMBERS" fgColor="B5CEA8" bgColor="1E1E1E" colorStyle="1" fontStyle="0" nesting="0" /&gt;
            &lt;WordsStyle name="KEYWORDS1" fgColor="4E9CD6" bgColor="1E1E1E" colorStyle="1" fontStyle="0" nesting="0" /&gt;
            &lt;WordsStyle name="KEYWORDS2" fgColor="80FF80" bgColor="1E1E1E" colorStyle="1" fontStyle="0" nesting="0" /&gt;
            &lt;WordsStyle name="KEYWORDS3" fgColor="FF0000" bgColor="1E1E1E" colorStyle="1" fontStyle="0" nesting="0" /&gt;
            &lt;WordsStyle name="KEYWORDS4" fgColor="FF8000" bgColor="1E1E1E" colorStyle="1" fontStyle="0" nesting="0" /&gt;
            &lt;WordsStyle name="KEYWORDS5" fgColor="FF8000" bgColor="1E1E1E" fontStyle="0" nesting="0" /&gt;
            &lt;WordsStyle name="KEYWORDS6" fgColor="FF8000" bgColor="1E1E1E" colorStyle="1" fontStyle="0" nesting="0" /&gt;
            &lt;WordsStyle name="KEYWORDS7" fgColor="000000" bgColor="1E1E1E" fontStyle="0" nesting="0" /&gt;
            &lt;WordsStyle name="KEYWORDS8" fgColor="000000" bgColor="1E1E1E" fontStyle="0" nesting="0" /&gt;
            &lt;WordsStyle name="OPERATORS" fgColor="FF8080" bgColor="1E1E1E" colorStyle="1" fontStyle="0" nesting="0" /&gt;
            &lt;WordsStyle name="FOLDER IN CODE1" fgColor="4E9CD6" bgColor="1E1E1E" colorStyle="1" fontStyle="1" nesting="0" /&gt;
            &lt;WordsStyle name="FOLDER IN CODE2" fgColor="FF80C0" bgColor="1E1E1E" colorStyle="1" fontStyle="0" nesting="0" /&gt;
            &lt;WordsStyle name="FOLDER IN COMMENT" fgColor="608B4E" bgColor="1E1E1E" colorStyle="1" fontStyle="0" nesting="0" /&gt;
            &lt;WordsStyle name="DELIMITERS1" fgColor="D69D85" bgColor="1E1E1E" colorStyle="1" fontStyle="0" nesting="0" /&gt;
            &lt;WordsStyle name="DELIMITERS2" fgColor="000000" bgColor="1E1E1E" fontStyle="0" nesting="50593791" /&gt;
            &lt;WordsStyle name="DELIMITERS3" fgColor="000000" bgColor="1E1E1E" fontStyle="0" nesting="0" /&gt;
            &lt;WordsStyle name="DELIMITERS4" fgColor="000000" bgColor="1E1E1E" fontStyle="0" nesting="0" /&gt;
            &lt;WordsStyle name="DELIMITERS5" fgColor="000000" bgColor="1E1E1E" fontStyle="0" nesting="0" /&gt;
            &lt;WordsStyle name="DELIMITERS6" fgColor="000000" bgColor="1E1E1E" fontStyle="0" nesting="0" /&gt;
            &lt;WordsStyle name="DELIMITERS7" fgColor="000000" bgColor="1E1E1E" fontStyle="0" nesting="0" /&gt;
            &lt;WordsStyle name="DELIMITERS8" fgColor="000000" bgColor="1E1E1E" fontStyle="0" nesting="0" /&gt;
        &lt;/Styles&gt;
    &lt;/UserLang&gt;
&lt;/NotepadPlus&gt;

</code></pre>
]]></description><link>https://community.notepad-plus-plus.org/topic/26389/udl-number-groups-with-negatives</link><generator>RSS for Node</generator><lastBuildDate>Thu, 14 May 2026 00:53:06 GMT</lastBuildDate><atom:link href="https://community.notepad-plus-plus.org/topic/26389.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 22 Nov 2024 07:28:14 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to UDL: Number groups with negatives on Fri, 22 Nov 2024 16:34:47 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/peterjones" aria-label="Profile: PeterJones">@<bdi>PeterJones</bdi></a> Looks like that solved the issue, thank you!</p>
]]></description><link>https://community.notepad-plus-plus.org/post/98084</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/98084</guid><dc:creator><![CDATA[papadanku]]></dc:creator><pubDate>Fri, 22 Nov 2024 16:34:47 GMT</pubDate></item><item><title><![CDATA[Reply to UDL: Number groups with negatives on Fri, 22 Nov 2024 14:20:55 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/papadanku" aria-label="Profile: papadanku">@<bdi>papadanku</bdi></a> said in <a href="/post/98073">UDL: Number groups with negatives</a>:</p>
<blockquote>
<p dir="auto">The language represents sets of numbers using a / separator</p>
</blockquote>
<p dir="auto">That doesn’t necessarily mean that <code>/</code> needs to be considered part of the number.<br />
In that situation, I would define <code>/</code> as an operator, not part of <strong>Number: Extras 1</strong>.  And, in fact, I would then remove the <code>/ - .</code> completely from <strong>Extras 1</strong>, because <code>.</code> and <code>-</code> are already considered part of a number.  And remove the digits from <strong>Prefix 2</strong>.</p>
<p dir="auto">That renders your three examples reasonably, IMO:</p>
<p dir="auto"><img src="/assets/uploads/files/1732284872723-9df52f6c-5652-4f40-8eae-115e2255404e-image.png" alt="9df52f6c-5652-4f40-8eae-115e2255404e-image.png" class=" img-fluid img-markdown" /></p>
<p dir="auto">If you absolutely have to have the <code>/</code> between the numbers in the same color as the numbers and a different color than your other operators, I would then bring in the plugin EnhanceAnyLexer, where you could define a regex to color the / in that special circumstance for your UDL – something like <code>0xA8CEB5 = (?&lt;=\d)/(?=[\d-])</code> should work:</p>
<p dir="auto"><img src="/assets/uploads/files/1732285253125-fbe9ec94-563b-49f9-8edd-6171346a3b55-image.png" alt="fbe9ec94-563b-49f9-8edd-6171346a3b55-image.png" class=" img-fluid img-markdown" /></p>
]]></description><link>https://community.notepad-plus-plus.org/post/98079</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/98079</guid><dc:creator><![CDATA[PeterJones]]></dc:creator><pubDate>Fri, 22 Nov 2024 14:20:55 GMT</pubDate></item></channel></rss>