l0bsterssg

node.js static responsive blog post generator
Log | Files | Refs | README

nsis.js (6309B)


      1 /*
      2 Language: NSIS
      3 Description: Nullsoft Scriptable Install System
      4 Author: Jan T. Sott <jan.sott@gmail.com>
      5 Website: https://nsis.sourceforge.io/Main_Page
      6 */
      7 
      8 function nsis(hljs) {
      9   var CONSTANTS = {
     10     className: 'variable',
     11     begin: /\$(ADMINTOOLS|APPDATA|CDBURN_AREA|CMDLINE|COMMONFILES32|COMMONFILES64|COMMONFILES|COOKIES|DESKTOP|DOCUMENTS|EXEDIR|EXEFILE|EXEPATH|FAVORITES|FONTS|HISTORY|HWNDPARENT|INSTDIR|INTERNET_CACHE|LANGUAGE|LOCALAPPDATA|MUSIC|NETHOOD|OUTDIR|PICTURES|PLUGINSDIR|PRINTHOOD|PROFILE|PROGRAMFILES32|PROGRAMFILES64|PROGRAMFILES|QUICKLAUNCH|RECENT|RESOURCES_LOCALIZED|RESOURCES|SENDTO|SMPROGRAMS|SMSTARTUP|STARTMENU|SYSDIR|TEMP|TEMPLATES|VIDEOS|WINDIR)/
     12   };
     13 
     14   var DEFINES = {
     15     // ${defines}
     16     className: 'variable',
     17     begin: /\$+{[\w\.:-]+}/
     18   };
     19 
     20   var VARIABLES = {
     21     // $variables
     22     className: 'variable',
     23     begin: /\$+\w+/,
     24     illegal: /\(\){}/
     25   };
     26 
     27   var LANGUAGES = {
     28     // $(language_strings)
     29     className: 'variable',
     30     begin: /\$+\([\w\^\.:-]+\)/
     31   };
     32 
     33   var PARAMETERS = {
     34     // command parameters
     35     className: 'params',
     36     begin: '(ARCHIVE|FILE_ATTRIBUTE_ARCHIVE|FILE_ATTRIBUTE_NORMAL|FILE_ATTRIBUTE_OFFLINE|FILE_ATTRIBUTE_READONLY|FILE_ATTRIBUTE_SYSTEM|FILE_ATTRIBUTE_TEMPORARY|HKCR|HKCU|HKDD|HKEY_CLASSES_ROOT|HKEY_CURRENT_CONFIG|HKEY_CURRENT_USER|HKEY_DYN_DATA|HKEY_LOCAL_MACHINE|HKEY_PERFORMANCE_DATA|HKEY_USERS|HKLM|HKPD|HKU|IDABORT|IDCANCEL|IDIGNORE|IDNO|IDOK|IDRETRY|IDYES|MB_ABORTRETRYIGNORE|MB_DEFBUTTON1|MB_DEFBUTTON2|MB_DEFBUTTON3|MB_DEFBUTTON4|MB_ICONEXCLAMATION|MB_ICONINFORMATION|MB_ICONQUESTION|MB_ICONSTOP|MB_OK|MB_OKCANCEL|MB_RETRYCANCEL|MB_RIGHT|MB_RTLREADING|MB_SETFOREGROUND|MB_TOPMOST|MB_USERICON|MB_YESNO|NORMAL|OFFLINE|READONLY|SHCTX|SHELL_CONTEXT|SYSTEM|TEMPORARY)'
     37   };
     38 
     39   var COMPILER = {
     40     // !compiler_flags
     41     className: 'keyword',
     42     begin: /\!(addincludedir|addplugindir|appendfile|cd|define|delfile|echo|else|endif|error|execute|finalize|getdllversion|gettlbversion|if|ifdef|ifmacrodef|ifmacrondef|ifndef|include|insertmacro|macro|macroend|makensis|packhdr|searchparse|searchreplace|system|tempfile|undef|verbose|warning)/
     43   };
     44 
     45   var METACHARS = {
     46     // $\n, $\r, $\t, $$
     47     className: 'meta',
     48     begin: /\$(\\[nrt]|\$)/
     49   };
     50 
     51   var PLUGINS = {
     52     // plug::ins
     53     className: 'class',
     54     begin: /\w+\:\:\w+/
     55   };
     56 
     57     var STRING = {
     58       className: 'string',
     59       variants: [
     60         {
     61           begin: '"', end: '"'
     62         },
     63         {
     64           begin: '\'', end: '\''
     65         },
     66         {
     67           begin: '`', end: '`'
     68         }
     69       ],
     70       illegal: /\n/,
     71       contains: [
     72         METACHARS,
     73         CONSTANTS,
     74         DEFINES,
     75         VARIABLES,
     76         LANGUAGES
     77       ]
     78   };
     79 
     80   return {
     81     name: 'NSIS',
     82     case_insensitive: false,
     83     keywords: {
     84       keyword:
     85       'Abort AddBrandingImage AddSize AllowRootDirInstall AllowSkipFiles AutoCloseWindow BGFont BGGradient BrandingText BringToFront Call CallInstDLL Caption ChangeUI CheckBitmap ClearErrors CompletedText ComponentText CopyFiles CRCCheck CreateDirectory CreateFont CreateShortCut Delete DeleteINISec DeleteINIStr DeleteRegKey DeleteRegValue DetailPrint DetailsButtonText DirText DirVar DirVerify EnableWindow EnumRegKey EnumRegValue Exch Exec ExecShell ExecShellWait ExecWait ExpandEnvStrings File FileBufSize FileClose FileErrorText FileOpen FileRead FileReadByte FileReadUTF16LE FileReadWord FileWriteUTF16LE FileSeek FileWrite FileWriteByte FileWriteWord FindClose FindFirst FindNext FindWindow FlushINI GetCurInstType GetCurrentAddress GetDlgItem GetDLLVersion GetDLLVersionLocal GetErrorLevel GetFileTime GetFileTimeLocal GetFullPathName GetFunctionAddress GetInstDirError GetKnownFolderPath GetLabelAddress GetTempFileName Goto HideWindow Icon IfAbort IfErrors IfFileExists IfRebootFlag IfRtlLanguage IfShellVarContextAll IfSilent InitPluginsDir InstallButtonText InstallColors InstallDir InstallDirRegKey InstProgressFlags InstType InstTypeGetText InstTypeSetText Int64Cmp Int64CmpU Int64Fmt IntCmp IntCmpU IntFmt IntOp IntPtrCmp IntPtrCmpU IntPtrOp IsWindow LangString LicenseBkColor LicenseData LicenseForceSelection LicenseLangString LicenseText LoadAndSetImage LoadLanguageFile LockWindow LogSet LogText ManifestDPIAware ManifestLongPathAware ManifestMaxVersionTested ManifestSupportedOS MessageBox MiscButtonText Name Nop OutFile Page PageCallbacks PEAddResource PEDllCharacteristics PERemoveResource PESubsysVer Pop Push Quit ReadEnvStr ReadINIStr ReadRegDWORD ReadRegStr Reboot RegDLL Rename RequestExecutionLevel ReserveFile Return RMDir SearchPath SectionGetFlags SectionGetInstTypes SectionGetSize SectionGetText SectionIn SectionSetFlags SectionSetInstTypes SectionSetSize SectionSetText SendMessage SetAutoClose SetBrandingImage SetCompress SetCompressor SetCompressorDictSize SetCtlColors SetCurInstType SetDatablockOptimize SetDateSave SetDetailsPrint SetDetailsView SetErrorLevel SetErrors SetFileAttributes SetFont SetOutPath SetOverwrite SetRebootFlag SetRegView SetShellVarContext SetSilent ShowInstDetails ShowUninstDetails ShowWindow SilentInstall SilentUnInstall Sleep SpaceTexts StrCmp StrCmpS StrCpy StrLen SubCaption Unicode UninstallButtonText UninstallCaption UninstallIcon UninstallSubCaption UninstallText UninstPage UnRegDLL Var VIAddVersionKey VIFileVersion VIProductVersion WindowIcon WriteINIStr WriteRegBin WriteRegDWORD WriteRegExpandStr WriteRegMultiStr WriteRegNone WriteRegStr WriteUninstaller XPStyle',
     86       literal:
     87       'admin all auto both bottom bzip2 colored components current custom directory false force hide highest ifdiff ifnewer instfiles lastused leave left license listonly lzma nevershow none normal notset off on open print right show silent silentlog smooth textonly top true try un.components un.custom un.directory un.instfiles un.license uninstConfirm user Win10 Win7 Win8 WinVista zlib'
     88     },
     89     contains: [
     90       hljs.HASH_COMMENT_MODE,
     91       hljs.C_BLOCK_COMMENT_MODE,
     92       hljs.COMMENT(
     93         ';',
     94         '$',
     95         {
     96           relevance: 0
     97         }
     98       ),
     99       {
    100         className: 'function',
    101         beginKeywords: 'Function PageEx Section SectionGroup', end: '$'
    102       },
    103       STRING,
    104       COMPILER,
    105       DEFINES,
    106       VARIABLES,
    107       LANGUAGES,
    108       PARAMETERS,
    109       PLUGINS,
    110       hljs.NUMBER_MODE
    111     ]
    112   };
    113 }
    114 
    115 module.exports = nsis;