Vous pouvez en savoir plus ici.
Swift Selection Search (SSS) est un module complémentaire Firefox pour rechercher rapidement du texte dans une page en utilisant vos moteurs de recherche préférés.
Sélectionnez du texte sur une page et une petite boîte contextuelle avec des moteurs de recherche apparaîtra au-dessus de votre curseur. Appuyez sur un et vous rechercherez automatiquement le texte sélectionné à l'aide de ce moteur!
SSS est configurable. Vous pouvez définir quels moteurs de recherche apparaissent sur la fenêtre contextuelle, l'apparence des icônes, ce qui se passe lorsque vous cliquez sur eux, où la fenêtre contextuelle apparaît, que ce soit ou non lorsque la page défile, si vous souhaitez copier automatiquement le texte sur la sélection et bien d'autres options.
Vous obtenez également un menu contextuel facultatif pour la recherche avec l'un de vos moteurs. Vous pouvez désactiver ce menu supplémentaire dans les options si vous le souhaitez. Vous avez également la possibilité de désactiver la popup elle-même et de ne laisser que ce menu contextuel. Votre choix. :)
SSS est disponible sur le site Web de Mozilla Add-ons, ici:
https://addons.mozilla.org/firefox/addon/swift-selection-search
Premièrement, comme WeBExtensions est fabriquée en JavaScript, nous devons être en mesure de convertir TypeScript en JavaScript, de préférence d'une manière aussi automatique que possible.
Installez NPM . Téléchargez Node.js à partir de https://nodejs.org et vous obtiendrez NPM à côté.
Dans le dossier du projet, exécutez ceci dans la ligne de commande:
Installation de NPM
Cela installera localement les dépendances dactylographiées du projet dans le dossier Node_Modules .
Pour transpiler tous les scripts .ts sur .js (sur Windows):
"node_modules / .bin / tsc.cmd" - watch -p tsconfig.json
La commande restera en vie et révèlera automatiquement le code après toute modification des fichiers .ts, ce qui est utile pendant le développement.
Vous avez maintenant des fichiers .js, vous pouvez donc utiliser SSS comme weBExtension. Ouais!
Pour un court développement ou tout simplement la curiosité, la façon plus simple d'essayer SSS est la page à propos: débogage # addons dans Firefox. Appuyez sur le bouton "Chargez Temporary Add-on", sélectionnez un fichier dans le répertoire Swift Selection Search "SRC" (par exemple Manifest.json ), et il chargera le module complémentaire jusqu'à ce que le navigateur soit fermé. Les modifications de la plupart des code nécessitent à nouveau le rechargement du module complémentaire.
Pour un développement et / ou des emballages plus prolongés, tels que le rechargement automatique après chaque modification, veuillez suivre les instructions de Mozilla ici pour installer et utiliser l'outil Web-EXT .
Fourk le référentiel sur GitHub et le cloner sur votre ordinateur.
Suivez les instructions ci-dessus pour comment construire .
En fin de compte, vous devriez avoir un script qui transpire automatiquement le code de TypeScript à JavaScript, et devrait savoir comment exécuter votre version de SSS sur Firefox.
Apprenez que SSS a 3 branches principales:
Lisez les directives du code ci-dessous.
Trouvez un problème que vous souhaitez résoudre dans la liste des problèmes.
Demandez si quelqu'un y travaille déjà. De plus, s'il manque des détails sur la façon de mettre en œuvre ou si vous voulez connaître les approches possibles, n'hésitez pas à demander!
Créez une nouvelle branche GIT pour la nouvelle fonctionnalité ou correction de bogue que vous essayez d'implémenter. Créez cette branche à partir de "développer", pour simplifier la fusion plus tard (car "maître" peut ne pas avoir toutes les modifications actuelles).
Implémentez et engagez / poussez les modifications à la branche, peut-être dans plusieurs engins.
Créez enfin une demande de traction pour fusionner vos modifications au référentiel d'origine. Il sera soumis à l'examen du code, à la discussion et éventuellement des modifications si nécessaire.
Merci!
SSS a été porté à un moment donné de JavaScript à TypeScript pour obtenir les avantages des annotations de type, car de nombreuses erreurs peuvent être capturées par le vérificateur de type. Cependant, il convient de noter que l'interaction de WeBExtensions avec TypeScript est au mieux capricieuse, car TypeScript suppose que les scripts peuvent importer du code / des données à partir d'autres scripts, alors qu'en réalité l'environnement WeBextensions a du sable et le permet rarement.
Les scripts de contenu ne voient pas le code à partir du script d'arrière-plan, ou vice-versa, et la seule façon dont plusieurs scripts de contenu peuvent même voir le code de l'autre est si tous sont injectés sur la même page par le script d'arrière-plan, similaire à la façon dont ils le feraient s'ils étaient inclus dans une page HTML en tant que scripts. TypeScript n'a aucune idée que c'est ainsi que WEBExtensions fonctionne, donc ce n'est pas parce que quelque chose se transpire correctement en JavaScript, cela ne signifie pas que la weBextension fonctionnera.
Un exemple qui fonctionne est que nous pouvons déclarer les types / classes dans le script d'arrière-plan et les référencer dans d'autres scripts, car seul le type Checker se soucie d'eux. Nous obtenons la vérification du type et c'est bien.
Cependant, si nous essayons d'ajouter à ces classes, certaines méthodes, affectations variables, etc., les scripts de contenu ou les scripts de page d'options ne les verront pas. Lors du passage à JavaScript, ils seront laissés comme référence au code dans un autre script, qui ne peut pas être référencé lors de l'exécution en raison du sable de sable WeBExtensions. Cela est également vrai pour les énumérations (qui ont des valeurs concrètes, donc "données") à moins que nous ne les déclarons en tant const enum , auquel cas TypeScript copie leurs valeurs à leur utilisation au lieu de créer des objets JavaScript.
Donc, si vous voyez une classe entièrement ou partiellement déclarée dans plus d'un script dans ce projet (par exemple dans le script d'arrière-plan et le script de page), ce qui précède est pourquoi.
Une autre chose qui peut échouer est d'utiliser instanceof pour vérifier si un objet est d'une certaine classe. Ne faites pas cela pour les classes créées sur mesure car elle peut échouer en raison du sable.