C'est une continuation de http://qiita.com/items/940cab68f7e112af249f.
Si vous effectuez une recherche avec Google Chrome ou PyCharm, le marqueur vous indiquera de quel côté se trouve le mot-clé hit.
Comme ça. C'est Iron, pas Chrome.
Je veux aussi cette fonctionnalité dans TortoiseHg.
Pour le moment, il semble que la classe BlockList, que j'ai modifiée l'autre jour, puisse être utilisée presque telle quelle. Placez-le sur le côté droit de la vue du fichier, comme Chrome. Donc ça ressemble à ça.
La source est ici. https://bitbucket.org/iwata0303/thg/commits/d8452bd98690ab2f939164358976ff68 SIGNAL / SLOT est soigneusement défini dans le code TortoiseHg, donc ce type d'extension est facile :)
Maintenant, comme l'autre jour, implémentons cette fonction avec un plug-in. C'est un problème de construire TortoiseHg vous-même. La dernière fois, je l'ai réalisé en ajoutant une méthode à la classe BlockList au moment de l'exécution, mais cette fois c'est un peu gênant car les corrections sont divisées en plusieurs parties et les méthodes existantes ont également des corrections. .. Pour le moment, il semble plus rapide de remplacer chaque classe. C'est plus facile à gérer lors de la mise à niveau.
La procédure est comme ça.
thg-ext
(quel que soit son nom) dans un emplacement approprié.blockmatcher.py
, qscilib.py
, fileview.py
) dans ce dossier.__init__.py
# -*- coding: utf-8 -*-
import sys
import os
def extsetup():
#Faites-le fonctionner uniquement lorsqu'il est lancé depuis TortoiseHg
if not os.path.basename(sys.argv[0]).startswith('thg'):
return
# qscilib.Remplacer Scintilla
from tortoisehg.hgqt import qscilib
from .qscilib import Scintilla
qscilib.Scintilla = Scintilla
# blockmatcher.Remplacer BlockList
from tortoisehg.hgqt import blockmatcher
from .blockmatcher import BlockList
blockmatcher.BlockList = BlockList
# fileview.Remplacer HgFileView
from tortoisehg.hgqt import fileview
from .fileview import HgFileView
fileview.HgFileView = HgFileView
À propos, l'ordre de remplacement de Scintilla
→ HgFileView
est important. HgFileView hérite de Scintilla, donc si vous chargez d'abord HgFileView, vous utiliserez Scintilla avant le remplacement.
mercurial.ini
ou hgrc
, enregistrez le chemin du dossier thg-ext
comme extension.mercurial.ini
[extensions]
thgext = C:\Work\thg-ext
Alors, félicitations, la fonction de marqueur de recherche a fonctionné :) La liberté est un bon langage dynamique. C'est une source de problèmes du côté qui prépare le mécanisme de plug-in, mais w