Python-liitännäiset¶
Modular Text Editor lataa Python-liitännäiset natiivien C++-liitännäisten rinnalla saman
liitännäishallintapinnan kautta. Python-liitännäinen on kansio, joka sisältää yhden
plugin.json-tiedoston ja vähintään yhden .py-tiedoston, jossa on ylätason funktio
register(ctx).
Editori käynnistää pienen työntekijäaliprosessin liitännäistä kohti, ajaa funktion
register(ctx) sen sisällä ja välittää komennot, valikot ja tapahtumat RPC-kanavan yli.
Liitännäisesi ei koskaan kosketa Qt:tä tai Scintillaa — ctx-olio on tavallinen
Python-palveluhakemisto.
Mikä toimii tänään (vaiheet 1–5: ominaisuudet valmiit)
Vaihe 1: komennot, valikkokohdat, tapahtumatilaukset (avaa / sulje / tallenna / aktiivinen asiakirja vaihtui / valinta vaihtui / sovellus lopettaa), loki ja tilarivi.
Vaihe 2: editorin puskuri, valinta, kohdistin, haku, sisennys ja tiedostotoiminnot
kohteen ctx.editor.* kautta, pysyvät asetukset kohteen ctx.settings.* kautta ja
vain luettavat sovellusasetukset kohteen ctx.app_settings.* kautta,
täydennystoimittajat (lyhyellä näppäinpainalluskohtaisella määräajalla)
koristeella @ctx.completions.provider(...) sekä ctx.data_dir()
liitännäiskohtaiseen kirjoitettavaan hakemistoon.
Vaihe 3: kuvailevat telakkapaneelit funktiolla ctx.docks.add_panel(...),
asetussivut funktiolla ctx.settings_page.register(...), molemmat rakennettuina
mte.ui-lomakerakentajilla, sekä ajonaikainen pääsy ohjausobjekteihin
funktioilla ctx.ui.get / ctx.ui.set.
Vaihe 4: .mteplugin-pakettien asennusohjelma — pakkaa liitännäiskansiosi zipiksi,
asenna se kohdasta Asetukset → Liitännäiset (katso Paketointi).
Vaihe 5: liitännäiskohtaiset virtuaaliympäristöt — ilmoita pip-riippuvuudet
kentässä pyRequires, niin editori valmistelee virtuaaliympäristön liitännäisellesi
ensimmäisellä käynnistyksellä (katso
Riippuvuudet); permissions-ilmoitus, joka
näytetään liitännäissivulla; ja virtaava ja peruutettava RPC-alusta (ei vielä
liitännäisille näkyvää API:ta — se pohjustaa tulevia tekoälypalveluita).
Vähimmäismuotoinen liitännäinen¶
Luo <any-folder>/hello/ näillä kahdella tiedostolla.
{
"id": "org.example.hello",
"name": "Hello (Python)",
"version": "1.0.0",
"apiVersion": 1,
"entry": "python",
"module": "main",
"menus": [
{ "title": "Plugins", "barPriority": 570, "itemPriority": 100 }
]
}
import mte # noqa: F401
def register(ctx):
@ctx.commands.command(id="hello.sayHi",
title="Say Hi",
shortcut="Ctrl+Alt+H")
def _say_hi():
ctx.status.show("Hello from Python!", timeout_ms=3000)
ctx.log.info("hello: Say Hi invoked")
ctx.menus.add_item("Plugins/Hello/Say Hi", "hello.sayHi")
Pakkaa kansio zipiksi nimellä hello.mteplugin ja asenna se kohdasta
Asetukset → Liitännäiset → Asenna liitännäinen... — tai pudota kansio käyttäjäkohtaiseen
liitännäishakemistoosi käsin (katso Paketointi). Käynnistä editori
uudelleen, niin Plugins → Hello → Say Hi ilmestyy valikkopalkkiin.
Mitä koneella täytyy olla¶
- Python 3.9+ -tulkki, joka on tavoitettavissa jommallakummalla tavalla:
PATH-muuttujassa (py.exe,python.exetaipython3.exeWindowsissa;python3macOS:ssä ja Linuxissa), tai- osoitettuna ympäristömuuttujalla
MTE_PYTHON(joko absoluuttisena polkunapython.exe-ohjelmaan tai pelkkänä nimenä, joka haetaanPATH-muuttujasta).
- Ei pip-paketteja: vaiheen 1 asiakaskirjasto
mtetulee editorin mukana ja lisätään polkuunsys.pathpuolestasi.
Editori kirjaa käynnistyksessä, minkä tulkin se valitsi:
PluginHost: MTE_PYTHON is not set; falling back to PATH.
PluginHost: located Python on PATH: py.exe -> C:/Windows/py.exe
PluginHost: Python plugin backend enabled; interpreter=..., worker=.../mte_python_host.py
Jos näet tekstin Python plugins disabled, hyppää kohtaan
Vianetsintä.
Mitä liitännäisesi voi tehdä¶
Kukin alla oleva kohta linkittää API-osioonsa:
| Kyky | Osio |
|---|---|
| Rekisteröidä komentoja (valinnaisine pikanäppäimineen) | ctx.commands |
| Tarjota valikkokohtia ja erottimia | ctx.menus |
| Tilata jokainen editoritapahtuma (asiakirjat, teksti, valinta, asetukset, teema, työtila …) ja julkaista työtilaa koskevat | ctx.events ja Tapahtumadokumentaatio |
| Kirjoittaa editorin diagnostiikkavirtaan | ctx.log |
| Lähettää ohimeneviä tilariviviestejä, omistaa pysyvä tilariviosio | ctx.status |
| Lukea ja muokata puskureita, valintoja (myös useita kohdistimia), kohdistinta, tiedostoja, hakua, kirjanmerkkejä, merkintöjä, URL-korostusta, sisennystä ja jaetun näkymän ryhmiä | ctx.editor |
| Luetella kieliä, lukea ja vaihtaa asiakirjan kieli ja tarjota kielimääritys | ctx.languages |
Tallentaa liitännäiskohtaista kokoonpanoa, lukea sovelluksenlaajuisia asetuksia (mte.keys) ja lukea asiakirjakohtaisia asetuksia .editorconfig-kerroksineen |
ctx.settings / ctx.app_settings / ctx.document_settings |
| Julkaista diagnostiikkaa (aaltoviivat ja marginaalimerkit) | ctx.diagnostics |
| Rekisteröidä teemoitettavia värejä omaan käyttöliittymääsi | ctx.theme |
| Avata vierekkäisen vertailunäkymän | ctx.compare |
| Rekisteröidä täydennystoimittajan (näppäinpainalluskohtaisella määräajalla) | ctx.completions |
| Paikantaa kirjoitettavan liitännäiskohtaisen hakemistosi | ctx.data_dir() |
| Lisätä kuvailevan telakkapaneelin, tuoda sen esiin tai piilottaa se komennosta | ctx.docks ja mte.ui |
| Lisätä sivun Asetuksiin | ctx.settings_page |
| Lukea ja kirjoittaa paneelien ohjausobjekteja ajon aikana | ctx.ui |
| Kytkeä pysyvän valintamerkin valikkokohtaan | ctx.menus.set_item_checked |
| Harmaannuttaa valikkokohdan, kun sen komento ei voi ajaa | ctx.menus.set_item_enabled |
Seuraavaksi¶
plugin.json-dokumentaatio — jokainen kenttä ja mitä se tekee.ctx-API-dokumentaatio — metodikohtainen dokumentaatio jokaisellectx-palvelulle.- Tapahtumadokumentaatio — aihe ↔ dataluokka -taulukko.
- Paketointi — mihin liitännäiskansiot kuuluvat levyllä.
- Vianetsintä — isännän lokirivien tulkinta.
- Clauden kanssa kirjoittaminen — tiivis opas, jonka voit antaa tekoälyavustajalle, jotta se tuottaa liitännäisen puolestasi.