[PYTHON] Lassen Sie uns die Dateiansicht von TortoiseHg etwas weiter ändern

Es ist eine Fortsetzung von http://qiita.com/items/940cab68f7e112af249f.

Was du machen willst

Wenn Sie mit Google Chrome oder PyCharm suchen, zeigt der Marker an, auf welcher Seite das Schlüsselwort hit steht.

So was. Das ist Eisen, nicht Chrom. Iron search

Ich möchte diese Funktion auch in TortoiseHg. ** Tortoise Bzr hat es übrigens schon. ** </ Stemmer>

Was ich getan habe

Derzeit scheint es, dass die BlockList-Klasse, die ich neulich geändert habe, fast so verwendet werden kann, wie sie ist. Platzieren wir es wie Chrome auf der rechten Seite der Dateiansicht. So sieht es also aus. thg-fileview

Die Quelle ist hier. https://bitbucket.org/iwata0303/thg/commits/d8452bd98690ab2f939164358976ff68 SIGNAL / SLOT ist im TortoiseHg-Code sorgfältig definiert, daher ist diese Art der Erweiterung einfach :)

Erweiterung

Lassen Sie uns diese Funktion nun wie neulich mit einem Plug-In implementieren. Es ist mühsam, TortoiseHg selbst zu bauen. Beim letzten Mal wurde dies durch Hinzufügen einer Methode zur BlockList-Klasse zur Laufzeit realisiert. Diesmal ist dies jedoch etwas problematisch, da die Korrekturen in mehrere Teile unterteilt sind und die vorhandenen Methoden auch Korrekturen enthalten. .. Zu diesem Zeitpunkt scheint es schneller zu sein, jede Klasse zu ersetzen. Beim Upgrade ist es einfacher zu handhaben.

Das Verfahren ist wie folgt.

  1. Erstellen Sie an einem geeigneten Ort einen Ordner mit dem Namen "thg-ext" (wie auch immer der Name lautet).
  2. Werfen Sie die geänderten Dateien (blockmatcher.py, qscilib.py, fileview.py) in diesen Ordner.
  3. Erstellen Sie eine Datei mit dem Namen "__init __. Py" im selben Ordner mit dem folgenden Inhalt.

__init__.py


# -*- coding: utf-8 -*-
import sys
import os

def extsetup():
    #Damit es nur funktioniert, wenn es von TortoiseHg aus gestartet wird
    if not os.path.basename(sys.argv[0]).startswith('thg'):
        return
    
    # qscilib.Ersetzen Sie Scintilla
    from tortoisehg.hgqt import qscilib
    from .qscilib import Scintilla
    qscilib.Scintilla = Scintilla
    # blockmatcher.Blockliste ersetzen
    from tortoisehg.hgqt import blockmatcher
    from .blockmatcher import BlockList
    blockmatcher.BlockList = BlockList
    # fileview.Ersetzen Sie HgFileView
    from tortoisehg.hgqt import fileview
    from .fileview import HgFileView
    fileview.HgFileView = HgFileView

Übrigens ist die Ersatzreihenfolge von Scintilla HgFileView wichtig. HgFileView erbt von Scintilla. Wenn Sie also zuerst HgFileView laden, verwenden Sie Scintilla vor dem Ersetzen.

  1. Registrieren Sie in mercurial.ini oder hgrc den Pfad des Ordners thg-ext als Erweiterung.

mercurial.ini


[extensions]
thgext = C:\Work\thg-ext

Herzlichen Glückwunsch, die Suchmarkierungsfunktion hat funktioniert :) Freiheit ist eine gute dynamische Sprache. Es ist eine Fehlerquelle von der Seite, die den Einsteckmechanismus vorbereitet, aber w

Recommended Posts

Lassen Sie uns die Dateiansicht von TortoiseHg etwas weiter ändern
Versuchen Sie, die Dateiansicht von TortoiseHg ein wenig zu ändern
Versuchen Sie, eine komprimierte Datei mit Python und zlib zu erstellen