Langages de programmation pris en charge
Environ 90 langages de programmation sont pris en charge par Notepad++ :
- ActionScript
- Ada
- ASN.1
- ASP
- Assembly
- AutoIt
- AviSynth
- BaanC
- Batch
- BlitzBasic
- C
- C#
- C++
- CAML
- CMake
- COBOL
- CoffeeScript
- Csound
- CSS
- D
- Diff
- Erlang
- ESCRIPT
- Forth
- Fortran fixed form
- Fortran free form
- FreeBasic
- GDScript
- Go
- Gui4Cli
- Haskell
- Hollywood
- HTML
- ini
- Inno Setup
- Intel
- HEX
- Internal Search
- Java
- JavaScript
- json
- json5
- JSP
- KiXtart
- LaTeX
- Lisp
- Lua
- Makefile
- MATLAB
- MMIXAL
- mssql
- NFO
- Nim
- Nncrontab
- NSIS
- Objective-C
- OScript
- Pascal
- Perl
- PHP
- PostScript
- PowerShell
- Properties file
- PureBasic
- Python
- R
- Raku
- RC
- REBOL
- registry
- Ruby
- Rust
- S-Record
- Scheme
- Shell
- Smalltalk
- Spice
- SQL
- Swift
- TCL
- Tektronix extended HEX
- TeX
- txt2tags
- TypeScript
- Verilog
- VHDL
- Visual Basic
- Visual Prolog
- XML
- YAML
Pour ces langages de programmation, Notepad++ prend en charge la coloration syntaxique (personnalisable), le pliage de syntaxe, la saisie semi-automatique (personnalisable), la liste de fonctions (personnalisable via PCRE dans un fichier xml).
Si votre langage de programmation préférée ne figure pas dans la liste ci-dessus, vous pouvez la définir vous-même facilement, en utilisant le système de langues définies par l'utilisateur. Si cela ne répond pas à vos besoins.
Veuillez noter que dans Notepad++ version 8.3 et plus récent, Notepad++ dispose d'une fonctionnalité n'effectuant plus de coloration syntaxique sur les fichiers de plus de 200 Mo - cela évite un ralentissement extrême des performances causé par la tentative de coloration syntaxique de fichiers extrêmement volumineux. Ce seuil est configurable dans Paramètres > Préférences > Performances (à partir de la version 8.4.7).
JavaScript
En interne, il existe en fait deux entrées pour JavaScript : dans le Style Configurator, elles s'affichent sous les noms «JavaScript» et «JavaScript (embedded)». La première est destinée aux fichiers JavaScript autonomes (généralement avec l'extension .js) ; la seconde est destinée aux fichiers JavaScript intégrés dans un fichier HTML. Vous pouvez donc avoir des règles de couleur différentes lorsque le JavaScript est intégré dans le HTML et lorsqu'il s'agit d'un fichier séparé. (Dans les fichiers de configuration langs.xml et stylers.xml, le fichier autonome utilise name="javascript.js".)
Si vous sélectionnez manuellement Language > J > Javascript, le fichier actif utilisera les paramètres JavaScript autonomes.
Prise en charge des thèmes et des langues
Il arrive parfois qu'un thème particulier n'ait pas été mis à jour pour inclure la coloration syntaxique pour une langue donnée. Si un langage de programmation dont vous avez besoin est manquante dans le thème que vous avez choisi, vous pouvez ouvrir le fichier %AppData%\Notepad++\themes\______.xml pour votre thème, ainsi que le fichier C:\Program Files\Notepad++\stylers.model.xml (l'emplacement de ces deux fichiers peut varier en fonction de l'emplacement de vos fichiers de configuration actifs pour themes\______.xml et du répertoire de votre exécutable notepad++.exe pour stylers.model.xml, si vous n'utilisez pas une installation par défaut). Recherchez dans stylers.model.xml la section <LexerType...> pour le langage de programmation manquante, puis copiez-la à l'emplacement approprié dans votre fichier themes\______.xml. Fermez complètement Notepad++ et relancez-le : cette langue devrait maintenant être dans le Style configurator de votre thème actif, bien que, selon la différence entre le jeu de couleurs de votre thème et le thème par défaut, les couleurs puissent être discordantes par rapport à la couleur d'arrière-plan de votre thème ; mais une fois qu'il est dans le Style Configurator, vous pouvez mettre à jour l'ensemble de couleurs pour ce langage de programmation dans le Style configurator. (Si votre thème est un thème sombre, il peut être préférable de copier à partir de themes\DarkModeDefault.xml au lieu de copier à partir de stylers.model.xml.)
Priorité de détection du langage de programmation
Lors de l'ouverture d'un fichier existant, Notepad++ dispose d'un algorithme pour tenter de déterminer le langage de programmation d'un fichier donné, avec les priorités suivantes :
- Une langage de programmation définie sur la ligne de commande à l'aide de -l est appliquée.
- Si le fichier se trouve dans le fichier de session actif (le fichier session.xml automatique ou une session contrôlée manuellement), il utilisera la langage de programmation entreposée dans cette session.
- Si l'extension de fichier est une «extension connue» (qu'elle provienne de la liste d'extensions par défaut du Style configurator [dans langs.xml ou langs.model.xml] ou de la liste d'extensions définie par l'utilisateur [à partir de stylers.xml ou themes\<ThemeName>.xml] pour une langage de programmation intégrée, ou des paramètres d'extension du langage de programmation définie par l'utilisateur [à partir de userDefineLang.xml ou userDefineLangs\<UDLName>.xml]), Notepad++ utilisera ce langage de programmation.
- Si le nom de fichier correspond à l'un des quelques noms spécifiques, Notepad++ sait de quel langage de programmation il doit s'agir :
Nom de fichier Langage de programmation makefile Makefile GNUMakefile Makefile CMakeLists.txt CMake SConstruct Python SConscript Python wscript Python Rakefile Ruby Vagrantfile Ruby crontab Shell Script
- Si la première ligne du fichier donne une indication connue quant au type de fichier, il l'utilisera. Cela inclut les «lignes de prologue» commençant par <?xml ou <?php ou <html ou <!DOCTPE html ou <?, ou les lignes «shebang» de style Linux comme #!/usr/bin/bash recherchant sh ou python ou perl ou php ou ruby ??ou node pour définir le langage de programmation correcte.
- Il utilisera le langage de programmation par défaut uniquement si aucune des autres règles ne correspond.
Notepad++ parcourt cette liste dans l'ordre et s'arrête dès qu'il trouve un langage de programmation correspondante pour le fichier. Une fois que Notepad++ a effectué sa détection, vous pouvez remplacer ce qu'il a choisi en utilisant le menu Langage (Language) (et lorsqu'une session est enregistrée, le langage de programmation se souviendra du langage de programmation actuellement active pour ce fichier pour la prochaine fois, comme décrit dans la priorité 2).
Si vous effectuez un enregistrement sous sur un fichier, il utilisera la même séquence pour décider du langue de programmation, en fonction du nouveau nom et du contenu du fichier.
Les documents nouvellement créés adopteront le langage de programmation par défaut jusqu'à leur enregistrement.