Obsługiwane języki#

Na dzień dzisiejszy program Notepad++ obsługuje/rozpoznaje ponad 80 różnych języków. Pod pojęciem języka # mamy tutaj na myśli:

Wewnętrznie obsługa poszczególnych języków jest realizowana przy użyciu:

Lekser # (lexer), zwany też skanerem (scanner) lub tokenizerem (tokenizer) [WikiEN, WikiPL] to program komputerowy odpowiedzialny za przeprowadzenie analizy leksykalnej # (lexical analysis) [WikiEN, WikiPL] na pewnych danych wejściowych. Lekser jest zwykle łączony z parserem # (parser) [WikiEN, WikiPL], którzy wspólnie analizują składnię języków programowania # (syntax of programming languages) [WikiEN, WikiPL], na przykład w kompilatorach czy silnikach przeglądarek internetowych.

Nie wdając się zbytnio w szczegóły można powiedzieć, że praca leksera polega na wyszukaniu w danych wejściowych (np. z pliku czy innego bufora) pewnych charakterystycznych elementów dla danego języka, np. identyfikatorów (stałe/zmienne), słów kluczowych, operatorów, separatorów, literałów, komentarzy, itd. Dzięki temu pozostałe mechanizmy w programie mogą przetwarzać takie elementy na różne sposoby, np. nadawać im odpowiedni wygląd (poprzez motywy), zwijać/rozwijać bloki w kodzie, automatycznie zamykać nawisy czy podpowiadać słowa kluczowe.

Wybór języka#

Wybór konkretnego języka dla otwieranych plików lub pojedynczego aktywnego pliku można przeprowadzić na wiele sposobów:

Tabela z informacjami o językach#

W poniższej tabeli (86 pozycji) zamieszczam najważniejsze informacje dla wszystkich języków obsługiwanych przez program NPP (źródło). Są to m.in.: nazwa języka, pełna etykieta języka (widoczna na Pasku stanu), identyfikator języka (używany w argumencie -l), domyślne rozszerzenia pliku dla języka i jego lekser (w postaci linku do pliku).

JęzykPełna etykietaIdentyfikatorRozszerzeniaLexer
Normal textNormal text filenormal.txtLexNull.cxx
ScintillaEditView.cpp
PHPPHP Hypertext Preprocessor filephp.php .php3 .php4 .php5 .phps .phpt .phtmlLexHTML.cxx
CC source filec.cLexCPP.cxx
C++C++ source filecpp.cpp .cxx .cc .h .hh .hpp .hxx .inoLexCPP.cxx
C#C# source filecs.csLexCPP.cxx
Objective-CObjective-C source fileobjc.mmLexCPP.cxx
JavaJava source filejava.javaLexCPP.cxx
RCWindows Resource filerc.rcLexCPP.cxx
HTMLHyper Text Markup Language filehtml.html .htm .shtml .shtm .xhtml .xht .htaLexHTML.cxx
XMLeXtensible Markup Language filexml.xml .xaml .xsl .xslt .xsd .xul .kml .svg .mxml .xsml .wsdl .xlf .xliff .xbl .sxbl .sitemap .gml .gpx .plist .vcproj .vcxproj .csproj .csxproj .vbproj .dbprojLexHTML.cxx
MakefileMakefilemakefile.mak .mkLexMake.cxx
PascalPascal source filepascal.pas .pp .p .inc .lprLexPascal.cxx
BatchBatch filebatch.bat .cmd .ntLexBatch.cxx
iniMS ini fileini.ini .inf .url .werLexProps.cxx
NFOMSDOS Style/ASCII Artnfo.nfoLexNull.cxx
ScintillaEditView.cpp
udfUser Defined language fileudf-LexUser.cxx
ASPActive Server Pages script fileasp.aspLexHTML.cxx
SQLStructured Query Language filesql.sqlLexSQL.cxx
Visual BasicVisual Basic filevb.vb .vbsLexVB.cxx
JavaScriptJavaScript filejavascript-LexCPP.cxx
CSSCascade Style Sheets Filecss.cssLexCSS.cxx
PerlPerl source fileperl.pl .pm .plxLexPerl.cxx
PythonPython filepython.py .pywLexPython.cxx
LuaLua source Filelua.luaLexLua.cxx
TeXTeX filetex.texLexTeX.cxx
Fortran free formFortran free form source filefortran.f .for .f90 .f95 .f2k .f23LexFortran.cxx
ShellUnix script filebash.bash .sh .bsh .csh .bash_profile .bashrc profileLexBash.cxx
ActionScriptFlash ActionScript fileactionscript.as .mxLexCPP.cxx
NSISNullsoft Scriptable Install System script filensis.nsi .nshLexNsis.cxx
TCLTool Command Language filetcl.tclLexTCL.cxx
LispList Processing language filelisp.lsp .lispLexLisp.cxx
SchemeScheme filescheme.scm .smd .ssLexLisp.cxx
AssemblyAssembly language source fileasm.asmLexAsm.cxx
DiffDiff filediff.diff .patchLexDiff.cxx
Properties fileProperties fileprops.propertiesLexProps.cxx
PostScriptPostScript filepostscript.psLexPS.cxx
RubyRuby fileruby.rb .rbwLexRuby.cxx
SmalltalkSmalltalk filesmalltalk.stLexSmalltalk.cxx
VHDLVHSIC Hardware Description Language filevhdl.vhd .vhdlLexVHDL.cxx
KiXtartKiXtart filekix.kixLexKix.cxx
AutoItAutoItautoit.au3LexAU3.cxx
CAMLCategorical Abstract Machine Languagecaml.ml .mli .sml .thyLexCaml.cxx
AdaAda fileada.ada .ads .adbLexAda.cxx
VerilogVerilog fileverilog.v .sv .vh .svhLexVerilog.cxx
MATLABMATrix LABoratorymatlab.mLexMatlab.cxx
HaskellHaskellhaskell.hs .lhs .lasLexHaskell.cxx
Inno SetupInno Setup scriptinno.issLexInno.cxx
Internal SearchInternal SearchsearchResult-LexSearchResult.cxx
CMakeCMake filecmake.cmakeLexCmake.cxx
YAMLYAML Ain't Markup Languageyaml.yml .yamlLexYAML.cxx
COBOLCOmmon Business Oriented Languagecobol.cbl .cbd .cdb .cdc .cob .cpy .copy .lstLexCOBOL.cxx
Gui4CliGui4Cli filegui4cli-LexGui4Cli.cxx
DD programming languaged.dLexD.cxx
PowerShellWindows PowerShellpowershell.ps1 .psm1LexPowerShell.cxx
RR programming languager.r .s .splusLexR.cxx
JSPJavaServer Pages script filejsp.jspLexHTML.cxx
CoffeeScriptCoffeeScript filecoffeescript.coffee .litcoffeeLexCoffeeScript.cxx
jsonJSON filejson.jsonLexJSON.cxx
JavaScriptJavaScript filejavascript.js.js .jsm .jsx .ts .tsxLexCPP.cxx
Fortran fixed formFortran fixed form source filefortran77.f77LexFortran.cxx
BaanCBaanC Filebaanc.bc .clnLexBaan.cxx
S-RecordMotorola S-Record binary datasrec.mot .srecLexHex.cxx
Intel HEXIntel HEX binary dataihex.hexLexHex.cxx
Tektronix extended HEXTektronix extended HEX binary datatehex.tekLexHex.cxx
SwiftSwift fileswift.swiftLexCPP.cxx
ASN.1Abstract Syntax Notation One fileasn1.mibLexAsn1.cxx
AviSynthAviSynth scripts filesavs.avs .avsiLexAVS.cxx
BlitzBasicBlitzBasic fileblitzbasic.bbLexBasic.cxx
PureBasicPureBasic filepurebasic.pbLexBasic.cxx
FreeBasicFreeBasic filefreebasic.bas .biLexBasic.cxx
CsoundCsound filecsound.orc .sco .csdLexCsound.cxx
ErlangErlang fileerlang.rl .hrlLexErlang.cxx
ESCRIPTESCRIPT fileescript.src .emLexEScript.cxx
ForthForth fileforth.forthLexForth.cxx
LaTeXLaTeX filelatex.tex .styLexLaTeX.cxx
MMIXALMMIXAL filemmixal.mmsLexMMIXAL.cxx
NimrodNimrod filenimrod.nimLexNimrod.cxx
Nncrontabextended crontab filenncrontab.tab .spfLexCrontab.cxx
OScriptOScript source fileoscript.osxLexOScript.cxx
REBOLREBOL filerebol.r2 .r3 .rebLexRebol.cxx
registryregistry fileregistry.regLexRegistry.cxx
RustRust filerust.rsLexRust.cxx
Spicespice filespice.scp .outLexSpice.cxx
txt2tagstxt2tags filetxt2tags.t2tLexTxt2tags.cxx
Visual PrologVisual Prolog filevisualprolog.pro .cl .i .pack .phLexVisualProlog.cxx
ExternalExternalext-LexNull.cxx
ScintillaEditView.cpp

Pominięte leksery#

Scintilla udostępnia 115 wszystkich lekserów. W poniższej liście zamieszczam wszystkie te, które nie zostały jeszcze wykorzystane przez program NPP (49 pozycji):

Pasek społecznościowy

SPIS TREŚCI AKTUALNEJ STRONY

Obsługiwane języki (H1) Wybór języka (H2) Tabela z informacjami o językach (H2) Pominięte leksery (H2)