Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
71 changes: 71 additions & 0 deletions UDL-samples/DAX_DarkTheme_byJRJohnson.dax
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
// DAX sample for checking the DAX (Dark Mode) highlighting

-- line comment, dash style
-- line comment, dash style

/* block comment
spanning lines */

DEFINE
MEASURE 'Sales Measures'[Total Sales] =
SUM ( 'Sales'[Amount] )

MEASURE 'Sales Measures'[Avg Daily Sales] =
AVERAGEX (
VALUES ( 'Date'[Date] ),
CALCULATE ( SUM ( 'Sales'[Amount] ) )
)

VAR __FilteredTable =
FILTER (
SUMMARIZECOLUMNS (
'Date'[Date],
'Product'[Category],
"DailyTotal", [Total Sales],
"SamePeriod", SAMEPERIODLASTYEAR([Amount])
),
[DailyTotal] > 0
)

VAR __Windowed =
WINDOW (
__FilteredTable,
ORDERBY ( [DailyTotal], DESC ),
1,
7
)

VAR __FinancialCalc =
PMT (
0.05,
12,
SUM ( 'Finance'[LoanAmount] )
)

VAR __InfoCheck =
INFO.VIEW.COLUMNS ()

VAR __TextOutput =
CONCATENATEX (
__FilteredTable,
IF(
ISBLANK([DailyTotal]),
FORMAT ( [DailyTotal], "0,0.00" ),
BLANK()
),
", "
)

EVALUATE
SUMMARIZECOLUMNS (
'Date'[Date],
'Product'[Category],
"TotalSales", [Total Sales],
"AvgDaily", [Avg Daily Sales],
"WindowedSum", SUMX ( __Windowed, [DailyTotal] ),
"FinancialPMT", __FinancialCalc,
"InfoVersion", __InfoCheck,
"TextBlob", __TextOutput
)
ORDER BY
'Date'[Date]
96 changes: 96 additions & 0 deletions UDLs/DAX_DarkTheme_byJRJohnson.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
DAX (Dark Theme) - User Defined Language for Notepad++
Covers: DAX queries (DEFINE / EVALUATE / ORDER BY / START AT), measures, calculated
columns and tables, calculation groups, visual calculations, window functions,
INFO.* functions and user-defined function declarations.

Dark mode: the DEFAULT style inherits foreground/background from the active theme
(colorStyle="0"), and every other style inherits only the background (colorStyle="1").
The syntax colors below are pastel hues chosen for dark backgrounds, so this works with
DarkModeDefault and other dark themes without clashing backgrounds.

Keyword groups
Comments (all) pale green, italic
Keywords1 Language keywords + query/UDF type names (DEFINE EVALUATE VAR RETURN ...) dark blue, bold
Keywords2 Filter, context and relationship functions (CALCULATE FILTER ALL VALUES ...) teal
Keywords3 Aggregation, math, trig and statistical (SUM AVERAGEX ROUND NORM.DIST ...) teal
Keywords4 Date/time and time intelligence (DATEADD TOTALYTD SAMEPERIODLASTYEAR) teal
Keywords5 Logical and information (IF SWITCH ISBLANK HASONEVALUE ...) teal
Keywords6 Text functions (FORMAT CONCATENATEX LEFT ...) teal
Keywords7 Table manipulation and window functions (SUMMARIZECOLUMNS TOPN WINDOW ...) teal
Keywords8 Financial, parent/child, calc groups, (PMT PATH SELECTEDMEASURE INFO.*) teal
visual calculations, INFO.* and other

Delimiters
Delimiter 1 "string" rust brown
Delimiter 2 'Table Name' lime green
Delimiter 3 [Column or Measure] pink

DAX is case-insensitive, so Ignore Case is on. If a table named Date or Calendar is being
colored as a function, set caseIgnored="no" below and write functions in upper case.
-->
<NotepadPlus>
<UserLang name="DAX (Dark Theme)" ext="dax msdax" darkModeTheme="yes" udlVersion="2.1">
<Settings>
<Global caseIgnored="no" allowFoldOfComments="yes" foldCompact="no" forcePureLC="0" decimalSeparator="0" />
<Prefix Keywords1="no" Keywords2="no" Keywords3="no" Keywords4="no" Keywords5="no" Keywords6="no" Keywords7="no" Keywords8="no" />
</Settings>
<KeywordLists>
<Keywords name="Comments">00// 00-- 01 02 03/* 04*/</Keywords>
<Keywords name="Numbers, prefix1"></Keywords>
<Keywords name="Numbers, prefix2"></Keywords>
<Keywords name="Numbers, extras1"></Keywords>
<Keywords name="Numbers, extras2"></Keywords>
<Keywords name="Numbers, suffix1"></Keywords>
<Keywords name="Numbers, suffix2"></Keywords>
<Keywords name="Numbers, range"></Keywords>
<Keywords name="Operators1">+ - * / ^ = &lt; &gt; &lt;= &gt;= &lt;&gt; == &amp;&amp; || ! &amp; , ;</Keywords>
<Keywords name="Operators2"></Keywords>
<Keywords name="Folders in code1, open">(</Keywords>
<Keywords name="Folders in code1, middle"></Keywords>
<Keywords name="Folders in code1, close">)</Keywords>
<Keywords name="Folders in code2, open"></Keywords>
<Keywords name="Folders in code2, middle"></Keywords>
<Keywords name="Folders in code2, close"></Keywords>
<Keywords name="Folders in comment, open">/*</Keywords>
<Keywords name="Folders in comment, middle"></Keywords>
<Keywords name="Folders in comment, close">*/</Keywords>
<Keywords name="Keywords1">DEFINE EVALUATE MEASURE COLUMN TABLE FUNCTION VAR RETURN ORDER BY ASC DESC START AT IN SCALAR ANYVAL ANYREF NUMERIC VARIANT INT64 INTEGER DOUBLE DECIMAL STRING BOOLEAN DATETIME VAL EXPR</Keywords>
<Keywords name="Keywords2">ALL ALLCROSSFILTERED ALLEXCEPT ALLNOBLANKROW ALLSELECTED CALCULATE CALCULATETABLE CROSSFILTER DISTINCT EARLIER EARLIEST FILTER FILTERS KEEPFILTERS LOOKUPVALUE RELATED RELATEDTABLE REMOVEFILTERS SELECTEDVALUE USERELATIONSHIP VALUES</Keywords>
<Keywords name="Keywords3">AVERAGE AVERAGEA AVERAGEX COUNT COUNTA COUNTAX COUNTBLANK COUNTROWS COUNTX DISTINCTCOUNT DISTINCTCOUNTNOBLANK APPROXIMATEDISTINCTCOUNT MAX MAXA MAXX MIN MINA MINX PRODUCT PRODUCTX SUM SUMX ABS ACOS ACOSH ACOT ACOTH ASIN ASINH ATAN ATANH CEILING COMBIN COMBINA CONVERT COS COSH COT COTH CURRENCY DEGREES DIVIDE EVEN EXP FACT FLOOR GCD INT ISO.CEILING LCM LN LOG LOG10 MOD MROUND ODD PI POWER QUOTIENT RADIANS RAND RANDBETWEEN ROUND ROUNDDOWN ROUNDUP SIGN SIN SINH SQRT SQRTPI TAN TANH TRUNC BETA.DIST BETA.INV CHISQ.DIST CHISQ.DIST.RT CHISQ.INV CHISQ.INV.RT CONFIDENCE.NORM CONFIDENCE.T COVARIANCE.P COVARIANCE.S EXPON.DIST GEOMEAN GEOMEANX LINEST LINESTX MEDIAN MEDIANX NORM.DIST NORM.INV NORM.S.DIST NORM.S.INV PERCENTILE.EXC PERCENTILE.INC PERCENTILEX.EXC PERCENTILEX.INC PERMUT POISSON.DIST RANK.EQ RANKX STDEV.P STDEV.S STDEVX.P STDEVX.S T.DIST T.DIST.2T T.DIST.RT T.INV T.INV.2T VAR.P VAR.S VARX.P VARX.S</Keywords>
<Keywords name="Keywords4">CALENDAR CALENDARAUTO DATE DATEDIFF DATEVALUE DAY EDATE EOMONTH HOUR MINUTE MONTH NOW QUARTER SECOND TIME TIMEVALUE TODAY UTCNOW UTCTODAY WEEKDAY WEEKNUM YEAR YEARFRAC CLOSINGBALANCEMONTH CLOSINGBALANCEQUARTER CLOSINGBALANCEWEEK CLOSINGBALANCEYEAR DATEADD DATESBETWEEN DATESINPERIOD DATESMTD DATESQTD DATESWTD DATESYTD ENDOFMONTH ENDOFQUARTER ENDOFWEEK ENDOFYEAR FIRSTDATE FIRSTNONBLANK FIRSTNONBLANKVALUE LASTDATE LASTNONBLANK LASTNONBLANKVALUE NEXTDAY NEXTMONTH NEXTQUARTER NEXTWEEK NEXTYEAR OPENINGBALANCEMONTH OPENINGBALANCEQUARTER OPENINGBALANCEWEEK OPENINGBALANCEYEAR PARALLELPERIOD PREVIOUSDAY PREVIOUSMONTH PREVIOUSQUARTER PREVIOUSWEEK PREVIOUSYEAR SAMEPERIODLASTYEAR STARTOFMONTH STARTOFQUARTER STARTOFWEEK STARTOFYEAR TOTALMTD TOTALQTD TOTALWTD TOTALYTD</Keywords>
<Keywords name="Keywords5">AND COALESCE FALSE IF IF.EAGER IFERROR NOT OR SWITCH TRUE BLANK COLUMNSTATISTICS CONTAINS CONTAINSROW CONTAINSSTRING CONTAINSSTRINGEXACT CUSTOMDATA HASONEFILTER HASONEVALUE ISAFTER ISBLANK ISCROSSFILTERED ISEMPTY ISERROR ISEVEN ISFILTERED ISINSCOPE ISLOGICAL ISNONTEXT ISNUMBER ISODD ISONORAFTER ISSUBTOTAL ISTEXT NAMEOF NONVISUAL USERCULTURE USERNAME USEROBJECTID USERPRINCIPALNAME</Keywords>
<Keywords name="Keywords6">CODE COMBINEVALUES CONCATENATE CONCATENATEX EXACT FIND FIXED FORMAT LEFT LEN LOWER MID REPLACE REPT RIGHT SEARCH SUBSTITUTE TRIM UNICHAR UNICODE UPPER VALUE TOCSV TOJSON</Keywords>
<Keywords name="Keywords7">ADDCOLUMNS ADDMISSINGITEMS CROSSJOIN CURRENTGROUP DATATABLE DETAILROWS EXCEPT GENERATE GENERATEALL GENERATESERIES GROUPBY IGNORE INTERSECT NATURALINNERJOIN NATURALLEFTOUTERJOIN ROLLUP ROLLUPADDISSUBTOTAL ROLLUPGROUP ROLLUPISSUBTOTAL ROW SAMPLE SELECTCOLUMNS SUBSTITUTEWITHINDEX SUMMARIZE SUMMARIZECOLUMNS TOPN TOPNSKIP TREATAS UNION INDEX MATCHBY OFFSET ORDERBY PARTITIONBY RANK ROWNUMBER WINDOW</Keywords>
<Keywords name="Keywords8">ACCRINT ACCRINTM AMORDEGRC AMORLINC COUPDAYBS COUPDAYS COUPDAYSNC COUPNCD COUPNUM COUPPCD CUMIPMT CUMPRINC DB DDB DISC DOLLARDE DOLLARFR DURATION EFFECT FV INTRATE IPMT ISPMT MDURATION NOMINAL NPER ODDFPRICE ODDFYIELD ODDLPRICE ODDLYIELD PDURATION PMT PPMT PRICE PRICEDISC PRICEMAT PV RATE RECEIVED RRI SLN SYD TBILLEQ TBILLPRICE TBILLYIELD VDB XIRR XNPV YIELD YIELDDISC YIELDMAT PATH PATHCONTAINS PATHITEM PATHITEMREVERSE PATHLENGTH ISSELECTEDMEASURE SELECTEDMEASURE SELECTEDMEASUREFORMATSTRING SELECTEDMEASURENAME COLLAPSE COLLAPSEALL EXPAND EXPANDALL FIRST ISATLEVEL LAST LOOKUP LOOKUPWITHTOTALS MOVINGAVERAGE NEXT PREVIOUS RANGE RUNNINGSUM ERROR EVALUATEANDLOG EXTERNALMEASURE TABLEOF INFO.ALTERNATEOFDEFINITIONS INFO.ANNOTATIONS INFO.ATTRIBUTEHIERARCHIES INFO.ATTRIBUTEHIERARCHYSTORAGES INFO.CALCDEPENDENCY INFO.CALCULATIONGROUPS INFO.CALCULATIONITEMS INFO.CALENDARCOLUMNGROUPS INFO.CALENDARCOLUMNREFERENCES INFO.CALENDARS INFO.CATALOGS INFO.CHANGEDPROPERTIES INFO.COLUMNPARTITIONSTORAGES INFO.COLUMNPERMISSIONS INFO.COLUMNS INFO.COLUMNSTORAGES INFO.CSDLMETADATA INFO.CULTURES INFO.DATACOVERAGEDEFINITIONS INFO.DATASOURCES INFO.DELTATABLEMETADATASTORAGES INFO.DEPENDENCIES INFO.DETAILROWSDEFINITIONS INFO.DICTIONARYSTORAGES INFO.EXCLUDEDARTIFACTS INFO.EXPRESSIONS INFO.EXTENDEDPROPERTIES INFO.FORMATSTRINGDEFINITIONS INFO.FUNCTIONS INFO.GENERALSEGMENTMAPSEGMENTMETADATASTORAGES INFO.GROUPBYCOLUMNS INFO.HIERARCHIES INFO.HIERARCHYSTORAGES INFO.KPIS INFO.LEVELS INFO.LINGUISTICMETADATA INFO.MEASURES INFO.MODEL INFO.OBJECTTRANSLATIONS INFO.PARQUETFILESTORAGES INFO.PARTITIONS INFO.PARTITIONSTORAGES INFO.PERSPECTIVECOLUMNS INFO.PERSPECTIVEHIERARCHIES INFO.PERSPECTIVEMEASURES INFO.PERSPECTIVES INFO.PERSPECTIVETABLES INFO.PROPERTIES INFO.QUERYGROUPS INFO.REFRESHPOLICIES INFO.RELATEDCOLUMNDETAILS INFO.RELATIONSHIPINDEXSTORAGES INFO.RELATIONSHIPS INFO.RELATIONSHIPSTORAGES INFO.ROLEMEMBERSHIPS INFO.ROLES INFO.SEGMENTMAPSTORAGES INFO.SEGMENTSTORAGES INFO.STORAGEFILES INFO.STORAGEFOLDERS INFO.STORAGETABLECOLUMNS INFO.STORAGETABLECOLUMNSEGMENTS INFO.STORAGETABLES INFO.TABLEPERMISSIONS INFO.TABLES INFO.TABLESTORAGES INFO.USERDEFINEDFUNCTIONS INFO.VARIATIONS INFO.VIEW.COLUMNS INFO.VIEW.MEASURES INFO.VIEW.RELATIONSHIPS INFO.VIEW.TABLES</Keywords>
<Keywords name="Delimiters">00&quot; 01 02&quot; 03&apos; 04 05&apos; 06[ 07 08] 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23</Keywords>
</KeywordLists>
<Styles>
<WordsStyle name="DEFAULT" fgColor="E0E0E0" bgColor="3F3F3F" colorStyle="0" fontStyle="0" nesting="0" />
<WordsStyle name="COMMENTS" fgColor="7F9F75" bgColor="3F3F3F" colorStyle="1" fontStyle="2" nesting="0" />
<WordsStyle name="LINE COMMENTS" fgColor="7F9F75" bgColor="3F3F3F" colorStyle="1" fontStyle="2" nesting="0" />
<WordsStyle name="NUMBERS" fgColor="B5CEA8" bgColor="3F3F3F" colorStyle="1" fontStyle="0" nesting="0" />
<WordsStyle name="KEYWORDS1" fgColor="139CDF" bgColor="3F3F3F" colorStyle="1" fontStyle="1" nesting="0" />
<WordsStyle name="KEYWORDS2" fgColor="4EC9B0" bgColor="3F3F3F" colorStyle="1" fontStyle="0" nesting="0" />
<WordsStyle name="KEYWORDS3" fgColor="4EC9B0" bgColor="3F3F3F" colorStyle="1" fontStyle="0" nesting="0" />
<WordsStyle name="KEYWORDS4" fgColor="4EC9B0" bgColor="3F3F3F" colorStyle="1" fontStyle="0" nesting="0" />
<WordsStyle name="KEYWORDS5" fgColor="4EC9B0" bgColor="3F3F3F" colorStyle="1" fontStyle="0" nesting="0" />
<WordsStyle name="KEYWORDS6" fgColor="4EC9B0" bgColor="3F3F3F" colorStyle="1" fontStyle="0" nesting="0" />
<WordsStyle name="KEYWORDS7" fgColor="4EC9B0" bgColor="3F3F3F" colorStyle="1" fontStyle="0" nesting="0" />
<WordsStyle name="KEYWORDS8" fgColor="4EC9B0" bgColor="3F3F3F" colorStyle="1" fontStyle="0" nesting="0" />
<WordsStyle name="OPERATORS" fgColor="D4D4D4" bgColor="3F3F3F" colorStyle="1" fontStyle="1" nesting="0" />
<WordsStyle name="FOLDER IN CODE1" fgColor="FFD700" bgColor="3F3F3F" colorStyle="1" fontStyle="1" nesting="0" />
<WordsStyle name="FOLDER IN CODE2" fgColor="E0E0E0" bgColor="3F3F3F" colorStyle="0" fontStyle="0" nesting="0" />
<WordsStyle name="FOLDER IN COMMENT" fgColor="6A9955" bgColor="3F3F3F" colorStyle="1" fontStyle="2" nesting="0" />
<WordsStyle name="DELIMITERS1" fgColor="CE9178" bgColor="3F3F3F" colorStyle="1" fontStyle="0" nesting="0" />
<WordsStyle name="DELIMITERS2" fgColor="C3E88D" bgColor="3F3F3F" colorStyle="1" fontStyle="0" nesting="0" />
<WordsStyle name="DELIMITERS3" fgColor="E38AD4" bgColor="3F3F3F" colorStyle="1" fontStyle="0" nesting="0" />
<WordsStyle name="DELIMITERS4" fgColor="E0E0E0" bgColor="3F3F3F" colorStyle="0" fontStyle="0" nesting="0" />
<WordsStyle name="DELIMITERS5" fgColor="E0E0E0" bgColor="3F3F3F" colorStyle="0" fontStyle="0" nesting="0" />
<WordsStyle name="DELIMITERS6" fgColor="E0E0E0" bgColor="3F3F3F" colorStyle="0" fontStyle="0" nesting="0" />
<WordsStyle name="DELIMITERS7" fgColor="E0E0E0" bgColor="3F3F3F" colorStyle="0" fontStyle="0" nesting="0" />
<WordsStyle name="DELIMITERS8" fgColor="E0E0E0" bgColor="3F3F3F" colorStyle="0" fontStyle="0" nesting="0" />
</Styles>
</UserLang>
</NotepadPlus>
9 changes: 9 additions & 0 deletions udl-list.json
Original file line number Diff line number Diff line change
Expand Up @@ -930,6 +930,15 @@
"author": "Sascha D. Kasper",
"homepage": "https://sascha-kasper.com/dax-syntax-highlighting-for-notepad/"
},
{
"id-name": "DAX_DarkTheme_byJRJohnson",
"display-name": "DAX (Dark Theme)",
"version": "2026-10-16",
"repository": "",
"description": "DAX Data Analysis Expressions (Microsoft Power BI)",
"author": "diabWH3",
"sample": "DAX_DarkTheme_byJRJohnson.dax"
},
{
"id-name": "dBASEPlus_DarkTheme_byLycanThrope",
"display-name": "dBASEPlus (Dark Theme)",
Expand Down