Le Bloc-notes inclut désormais l'annulation en plusieurs étapes, une interface de recherche améliorée et la prise en charge du mode sombre.
« Comme les blocs-notes physiques autour de votre maison, l'application Bloc-notes est conçue pour être un simple compagnon pour tous vos besoins de base en matière de prise de notes. L'interface utilisateur repensée est à la fois fraîche, avec de nouvelles fonctionnalités de conception de Windows 11, et familière, avec la simplicité et la facilité d'utilisation qui font la renommée du Bloc-notes. En plus des mises à jour de conception, nous avons ajouté le mode sombre, afin que l'application soit plus cohérente avec votre expérience Windows. Si votre thème système par défaut est le mode sombre, le Bloc-notes adoptera automatiquement le thème sombre, ou vous pouvez également sélectionner le thème de l'application manuellement à partir de la nouvelle page des paramètres. Les menus ont également été simplifiés pour faciliter la recherche des actions que vous souhaitez effectuer dans l'application, et nous avons ajouté de nouvelles fonctionnalités très demandées telles que l'annulation à plusieurs niveaux, des emojis colorés et une expérience de recherche et de remplacement moderne et efficace. Pour obtenir les applications Media Player et Notepad repensées, visitez le Microsoft Store ».
Microsoft a consacré un billet pour évoquer le côté technique de certaines améliorations qui accompagnent cet outil.
Murray Sargent, Principle Software Engineer, CXE (Office Shared) a indiqué :
« Le nouveau Bloc-notes Windows 11 utilise RichEdit et s'exécute sur les installations Windows 11 à jour. En plus d'un aspect Windows 11 avec des coins arrondis et une option de thème sombre, le nouveau Bloc-notes inclut plusieurs améliorations d'édition RichEdit standard, telles que Alt+x pour saisir des caractères Unicode, Ctrl+} pour basculer entre les crochets/parenthèses correspondants, l'annulation à plusieurs niveaux, glisser-déposer, emoji couleur, sélection de blocs et détection d'URL automatique. Vous pourriez deviner que l'utilisation d'un contrôle en texte brut RichEdit dans le Bloc-notes serait un slam dunk. RichEdit a eu des contrôles en texte brut depuis Office 97 (au siècle dernier !) et ils ont été utilisés une myriade de fois. Mais ces contrôles en texte brut sont petits et existent généralement dans les boîtes de dialogue. Le bloc-notes est souvent utilisé pour afficher des fichiers volumineux, donc des performances élevées sont importantes et les lignes peuvent être très longues. Et le bloc-notes classique a été amélioré de diverses manières, telles que de meilleures performances, la détection de fin de ligne (CR, LF, CRLF) et une option de menu contextuel "Afficher les caractères de contrôle Unicode". En conséquence, il a fallu des efforts considérables pour utiliser RichEdit comme moteur d'édition du nouveau Bloc-notes. Cet article décrit quelques ajouts et détails de mise en œuvre ».
Ajouts à RichEdit
Le bloc-notes classique possède deux fonctionnalités pratiques qui n'ont pas été implémentées dans RichEdit : la détection de fin de ligne (CR, LF, CRLF) et le mode « Afficher les caractères de contrôle Unicode ».
Murray note que « Pendant des années, le Bloc-notes n'a pas cassé les lignes de la convention Unix qui se terminaient par un LF (U + 000A) au lieu d'un CRLF (U + 000D U + 000A). J'avais l'habitude d'ouvrir les fichiers de données de caractères Unicode, qui contiennent des lignes terminées par LF, avec WordPad et de les enregistrer pour convertir les LF en CRLF afin que le Bloc-notes les affiche correctement ».
Pour résoudre ce problème, le Bloc-notes a fait mieux : il a vérifié quelle fin de ligne venait en premier, puis a fait de cette fin de ligne la valeur par défaut pour le fichier. Ainsi, un fichier avec des lignes terminées par LF reste terminé par LF et s'affiche correctement. En interne, RichEdit suit l'exemple de Word et de Mac en terminant les paragraphes avec un CR et en convertissant les LF et CRLF en CR lors de la lecture dans un fichier ou du stockage de texte via une API comme WM_SETTEXT ou ITextRange2::SetText2.
« C'est toujours le cas, mais vous pouvez dire à RichEdit de reconnaître le type de terminaison de ligne dans un fichier et d'utiliser ce choix pour enregistrer/copier le fichier en envoyant le message EM_SETENDOFLINE avec wparam=EC_ENDOFLINE_DETECTFROMCONTENT ».
Afficher le mode des caractères de contrôle Unicode et les emoji
Le Bloc-notes a une option « Afficher les caractères de contrôle Unicode » dans son menu contextuel depuis de nombreuses années. Ce mode affiche les caractères de contrôle de largeur nulle Bidi à l'aide de glyphes distinctifs de « largeur nulle ». Ceci est très utile, par exemple, pour révéler les codes Bidi RLO (U + 202E) et LRO (U + 202D) qui remplacent les directions de caractères habituelles et sont parfois utilisés pour usurper des fichiers à des fins néfastes. Il affiche également la jointure de largeur nulle (ZWJ—U+200D) avec une ligne verticale « de largeur nulle » surmontée d'un x. Mais à l'intérieur des séquences emoji ZWJ, telles que les emojis familiaux, le mode ne sépare pas la séquence au niveau des ZWJ et ne révèle pas les ZWJ par le glyphe ZWJ de largeur nulle. Et le bloc-notes classique n'affiche pas les séquences ZWJ et les emoji en général en couleur.
Dans le nouveau mode Bloc-notes « Afficher les caractères de contrôle Unicode », les séquences ZWJ sont séparées au niveau des ZWJ et les ZWJ sont affichés par le glyphe de largeur zéro ZWJ. Vous pouvez naviguer à l'intérieur de la séquence ZWJ en utilisant les touches ← et → et taper Alt+x pour voir les codes des caractères composant la séquence ZWJ. Cela vous permet de comprendre comment une séquence ZWJ est construite. Par exemple, le nouveau mode affiche la séquence famille emoji ZWJ👨❤️👩donnée par les codes U+1F468 ZWJ U+2764 U+FE0F ZWJ U+1F469 comme
Liste déroulante de la boîte de dialogue Rechercher/Remplacer
Visual Studio Code a une boîte de dialogue Rechercher / Remplacer astucieuse qui se déroule dans le coin supérieur droit de la zone de texte. Si la boîte de dialogue chevauche le texte de départ, l'utilisateur peut faire glisser le texte juste sous le bas de la boîte de dialogue. Le nouveau Bloc-notes imite ce comportement.
« Il était un peu difficile d'obtenir RichEdit pour fournir les fonctionnalités associées. Dans la mise en forme de texte enrichi, les propriétés espace de paragraphe avant et espace après sont utilisées pour ajouter un espacement entre les paragraphes. Étant donné que RichEdit est un éditeur de texte enrichi, il prend en charge ces propriétés, et il était naturel d'implémenter l'espace déroulant comme "espace de document avant" ».
La valeur d'espace avant est incluse dans l'ascension de la première ligne du document. Les astuces consistaient à supprimer ou à remplacer la première ligne et à faire défiler correctement l'affichage avec une valeur d'espace de document non nulle.
Améliorations de l'interface utilisateur en texte brut
« Nous avons décidé de faire correspondre l'interface utilisateur de Visual-Studio pour la sélection et la désélection du caractère EOP à la fin d'une ligne. Cela diffère de l'interface utilisateur de Word, qui a tendance à sélectionner automatiquement le caractère EOP si vous naviguez à côté. Plus précisément, dans les contrôles en texte brut, nous ne laissons pas la souris étendre la sélection pour inclure l'EOP sur une ligne ou laisser Maj + Fin sélectionner l'EOP. Cela correspond à ce qui est supprimé si vous appuyez sur la touche Suppr après avoir sélectionné le texte. Vous pouvez toujours sélectionner le caractère EOP en utilisant Maj+→ et en étendant la sélection à la ligne suivante. De plus, si le retour à la ligne est désactivé, le signe d'insertion du point d'insertion suit désormais tous les espaces que vous entrez au lieu d'ignorer les espaces ».
Quelques détails de mise en œuvre
Le Bloc-notes de Windows 11 utilise une fenêtre pour son canevas d'édition et les fenêtres utilisent généralement GDI pour afficher du texte et des images. GDI n'a pas de fonctions pour afficher les polices de couleur en couleur, contrairement à DirectWrite. Pour pouvoir utiliser DirectWrite pour les emoji couleur et d'autres améliorations, le nouveau Bloc-notes crée donc une fenêtre RichEDitD2DPT, qui utilise DirectWrite pour le texte et GDI pour les objets OLE (le Bloc-notes n'insère pas d'objets OLE).
La version RichEdit utilisée dans le Bloc-notes provient des mêmes sources que la version RichEdit chargée avec les applications Microsoft 365 telles que Word, PowerPoint, Excel et OneNote. Ce n'est pas le Windows RichEdit dans msftedit.dll. Par conséquent, le Bloc-notes dispose des dernières améliorations de RichEdit.
Microsoft a corrigé des bogues qui n'apparaissaient pas pour les contrôles de texte brut RichEdit au fil des ans, en partie parce qu'avant le Bloc-notes, les instances de texte brut étaient petites.
Le Bloc-notes utilise la liaison de police classique RichEdit au lieu de la liaison de police IProvideFontInfo utilisée dans les contrôles de texte XAML et dans les contrôles RichEdit apparaissant dans les applications Microsoft 365. Le bloc-notes ne veut pas charger les bibliothèques mso utilisées dans ce dernier, car ces bibliothèques sont assez volumineuses. La liaison de police classique a été améliorée, mais doit ajouter la prise en charge de davantage de scripts.
Source : Microsoft
Et vous ?
Avez-vous essayé le nouveau bloc-notes sur Windows 11 ? Qu'en pensez-vous ?