A szerződés

A művelet definiálja a transform(text) függvényt. Amit visszaad, szöveggé alakul, és oda kerül be, ahol éppen írsz.

def transform(text):
    return text.upper()

Adj vissza None értéket, ha semmit nem akarsz beszúrni. Gyors próbához függvény helyett rendelj értéket egy felső szintű result változónak.

Honnan jön a szöveg

BemenetMit kap a művelet
SemmiSzöveget hoz létre a semmiből. transform("").
Aktuális szóÁtadja az éppen gépelt szót a transform(text) függvénynek.
KijelölésA kijelölt szöveget adja át, vagy semmit, ha nincs kijelölés.
Aktuális sorAzt a sort adja át, amelyben a kurzor áll.
Aktuális mondatAzt a mondatot adja át, amelyben a kurzor áll.
A kurzor előtti szövegÁtad mindent a kurzor előtt.
Szöveg a kurzor utánMindent átad, ami a kurzor után áll.
Teljes mezőA teljes mezőt átadja, a kurzor mindkét oldaláról.
VágólapÁtadja a vágólap szövegét. Teljes hozzáférés kell hozzá.

A Bemenet cseréje dönti el, hogy a kimenet a bemenet helyére kerül-e. Minden olyan forrásra vonatkozik, amely a mezőt olvassa. A Semmi és a Vágólap esetén nincs mit cserélni a dokumentumban, így az ő kimenetük mindig beszúrásra kerül.

def transform(text):
    words = len(text.split())
    return f"{words} words"
A kurzor előtti szöveget olvassa, és kikapcsolt bemenetcsere mellett darabszámot fűz hozzá.

Kérés a billentyűzethez

Egy művelet ugyanazokat a parancsokat használhatja, mint egy panel, ahelyett hogy egyetlen sztringet adna vissza. Így végez egy művelet több szerkesztést, vagy hagyja a kurzort egy adott helyen.

def transform(text):
    replace(len(text), "(" + text + ")")
    move_cursor(-1)
A szó zárójelbe tétele, majd vissza a zárójelen belülre.

A toast() és a close() a paneleké: egy műveletnek nincs saját felülete, ahol üzenetet mutathatna. A konzolon írás közben azért mindkettő megjelenik.

A nyelv

A szkriptek a Clink saját értelmezőjén futnak, nem CPythonon. Az a Python egy használható részhalmazát olvassa: listakifejezéseket, lambdákat, rendezett n-eseket, halmazokat, f-string formátumokat, try és except szerkezeteket. A többit olyan üzenettel utasítja vissza, amely megnevezi a sort.

Típusok

  • int
  • float
  • str
  • bool
  • None
  • list
  • tuple
  • dict
  • set

Kulcsszavak

  • if
  • elif
  • else
  • while
  • for
  • in
  • def
  • return
  • break
  • continue
  • pass
  • True
  • False
  • None
  • and
  • or
  • not
  • lambda
  • try
  • except
  • finally
  • raise
  • import
  • from
  • as
  • is
  • del
  • global

Beépített függvények

  • len
  • str
  • repr
  • print
  • int
  • float
  • bool
  • abs
  • round
  • min
  • max
  • sum
  • range
  • sorted
  • reversed
  • list
  • dict
  • set
  • tuple
  • enumerate
  • zip
  • ord
  • chr
  • any
  • all
  • type
  • map
  • filter
  • divmod
  • pow
  • hex
  • bin
  • oct
  • format
  • isinstance
  • callable

Karakterlánc-metódusok

  • upper
  • lower
  • casefold
  • title
  • capitalize
  • swapcase
  • strip
  • lstrip
  • rstrip
  • replace
  • split
  • rsplit
  • splitlines
  • join
  • startswith
  • endswith
  • find
  • rfind
  • index
  • rindex
  • count
  • partition
  • rpartition
  • zfill
  • ljust
  • rjust
  • center
  • isdigit
  • isnumeric
  • isalpha
  • isalnum
  • isspace
  • isupper
  • islower
  • istitle
  • removeprefix
  • removesuffix
  • format

Listametódusok

  • append
  • extend
  • pop
  • insert
  • remove
  • index
  • count
  • sort
  • reverse
  • clear
  • copy

Szótármetódusok

  • keys
  • values
  • items
  • get
  • pop
  • popitem
  • setdefault
  • update
  • clear
  • copy

Halmazmetódusok

  • add
  • discard
  • remove
  • pop
  • clear
  • copy
  • update
  • union
  • intersection
  • difference
  • symmetric_difference
  • issubset
  • issuperset
  • isdisjoint

Tuple-metódusok

  • count
  • index

Regex-találat metódusai

  • group
  • groups
  • groupdict
  • start
  • end
  • span

Kivételek

  • Exception
  • ValueError
  • TypeError
  • KeyError
  • IndexError
  • NameError
  • ZeroDivisionError
  • AttributeError
  • RuntimeError
  • StopIteration

Elutasítva

  • class
  • with
  • nonlocal
  • assert
  • yield
  • async
  • await
  • match

Névterek

Ezek a névterek importálhatók, más semmi. Mindegyik csak számol: nincs fájlrendszer, nincs hálózat és nincs folyamat, amelyet egy szkript elérhetne.

import json

  • dumps
  • loads

import math

  • acos
  • asin
  • atan
  • atan2
  • ceil
  • comb
  • copysign
  • cos
  • degrees
  • e
  • exp
  • fabs
  • factorial
  • floor
  • fmod
  • gcd
  • hypot
  • inf
  • isfinite
  • isinf
  • isnan
  • lcm
  • log
  • log10
  • log2
  • nan
  • pi
  • pow
  • prod
  • radians
  • sin
  • sqrt
  • tan
  • tau
  • trunc

import random

  • choice
  • choices
  • randint
  • random
  • randrange
  • sample
  • seed
  • shuffle
  • uniform

import re

  • DOTALL
  • I
  • IGNORECASE
  • M
  • MULTILINE
  • S
  • escape
  • findall
  • finditer
  • fullmatch
  • match
  • search
  • split
  • sub
  • subn

import sys

  • version

import time

  • format
  • monotonic
  • parts
  • time
import re

def transform(text):
    return re.sub(r"\s+", " ", text).strip()
Szóközsorozatok összevonása reguláris kifejezéssel.

A reguláriskifejezés-motor a Clink sajátja, és ugyanabból a lépéskeretből gazdálkodik, mint a szkript többi része, így az a minta, amely különben a végtelenségig futna, hibával áll meg, nem pedig egy billentyűzettel, amely nem válaszol. Visszahivatkozás és környezetvizsgálat nincs.

Miért nem CPython

A billentyűzetbővítménynek kemény memóriaplafonja van, és az iOS figyelmeztetés nélkül leállítja, amint átlépi. Egy teljes Python-futtatókörnyezet nem férne el a billentyűzet mellett, ezért a Clink egy kicsi, erre a feladatra írt értelmezőt hoz magával: import, fájlok és hálózat nélkül, olyan lépéskerettel, amely az elszabadult szkriptnek vet véget, nem a billentyűzetnek.

A print a szerkesztő konzoljára megy, sosem abba, amit éppen írsz.

Megosztás

Az Oszd meg a műveletet .clinkext fájlt ír, az Importálási művelet pedig friss azonosítóval hozza vissza. Egy művelet 48 000 bájt alatt marad, és definiálnia kell a következőt: def transform(.

Műhely ›
Letöltés az App Store-ból