LLineCitrine
AI-werkruimte voor code

Regelafbreking met minimale rafeligheid

Verdeel maximaal 100 woorden zonder witruimte over regels van één tot 80 codepunten en minimaliseer gekwadrateerde ongebruikte ruimte behalve op de laatste regel.

● ● ●LineCitrine●
Werkprocessen · Regelafbreking met minimale rafeligheid ×
def wrap_words(words, width):
    words = tuple(words)
    if type(width) is not int or not 1 <= width <= 80 or len(words) > 100:
        raise ValueError("wrap.limit")
    if any(type(w) is not str or not w or len(w) > width or any(c.isspace() for c in w) for w in words):
        raise ValueError("wrap.word")
    n = len(words)
    costs, ends = [0] * (n+1), [0] * n
    for i in range(n-1, -1, -1):
        used, best = 0, None
        for j in range(i, n):
            used += len(words[j]) + (j > i)
            if used > width:
                break
            cost = 0 if j == n-1 else (width-used)**2 + costs[j+1]
            if best is None or cost < best:
                best, ends[i] = cost, j+1
        costs[i] = best
    lines, i = [], 0
    while i < n:
        lines.append(" ".join(words[i:ends[i]]))
        i = ends[i]
    return lines
✳Verdeel maximaal 100 woorden zonder witruimte over regels van één tot 80 codepunten en minimaliseer gekwadrateerde ongebruikte ruimte behalve op de laatste regel.
✓ WijzigingenControleer vóór het toepassen ↗
Illustratie van de werkruimte
Controleer vóór het toepassenVergelijk het werkelijke gedrag met het verwachte resultaat. Onderzoek een mislukte controle voordat je verdergaat met wijzigingen.
ModellenStel een OpenAI-compatibel of Anthropic-endpoint in met de basis-URL en zo nodig een API-sleutel. Test de verbinding. Een lokale modelserver moet actief zijn; externe hulpmiddelen kunnen apart gegevens versturen.
ProjectTest lege invoer en alternatieve afbrekingen, weiger lege of te lange woorden en claim geen terminalbreedte.
Werkprocessen

Regelafbreking met minimale rafeligheid

Werkprocessen ↗
Werkprocessen
def wrap_words(words, width):
    words = tuple(words)
    if type(width) is not int or not 1 <= width <= 80 or len(words) > 100:
        raise ValueError("wrap.limit")
    if any(type(w) is not str or not w or len(w) > width or any(c.isspace() for c in w) for w in words):
        raise ValueError("wrap.word")
    n = len(words)
    costs, ends = [0] * (n+1), [0] * n
    for i in range(n-1, -1, -1):
        used, best = 0, None
        for j in range(i, n):
            used += len(words[j]) + (j > i)
            if used > width:
                break
            cost = 0 if j == n-1 else (width-used)**2 + costs[j+1]
            if best is None or cost < best:
                best, ends[i] = cost, j+1
        costs[i] = best
    lines, i = [], 0
    while i < n:
        lines.append(" ".join(words[i:ends[i]]))
        i = ends[i]
    return lines
AI-werkruimte voor code

Geef een wijziging in tekstopmaak een beoordeelbaar doel

LineCitrine biedt een programmeeromgeving voor Windows voor ontwikkelaars die beslissingen over uitvoeropmaak uitwerken met een verbonden AI-model. Een opmaakverzoek is beter te beoordelen wanneer het aangeeft wat als een beter resultaat geldt. Open de projectmap en neem de opmaakfunctie, de gebruikende code en representatieve invoer op in het gesprek voordat je een wijziging vraagt.

Een voorbeeld vraagt om regelafbrekingen in platte tekst die de gekwadrateerde ongebruikte ruimte minimaliseren en de laatste regel apart behandelen. Definieer expliciet de toegestane woorden, breedtegrens en kostenregel. Vraag het model mogelijke afbrekingen met dat doel te vergelijken. Onderscheid lengte in codepunten van weergegeven kolombreedte, zodat het voorstel niet stilzwijgend gedrag belooft buiten de gekozen representatie.

Beoordeel de voorgestelde wijziging met concurrerende indelingen, lege invoer en een woord dat de geaccepteerde breedte overschrijdt. Voer de projectcontroles uit en bereken de verwachte kosten voor de kleine gekozen voorbeelden. Het resultaat moet woorden behouden en aan het vastgelegde doel voldoen, niet alleen evenwichtig ogen in één lettertype. Neem het uitvoerformaat van de gebruikende code mee als dat extra eisen stelt.

Een ondersteund OpenAI-compatibel of Anthropic-endpoint levert de modelverbinding van LineCitrine. Waar AI-modellen zonder beperkingen worden aangeboden, kun je er één kiezen met de vereiste inloggegevens. Model en server bepalen beperkingen, contextlimieten en toolondersteuning; het opmaakdoel blijft een eis die jij definieert en verifieert.

Vragen over een voorstel voor regelafbreking

Wat moet het verzoek over de laatste regel zeggen?

Geef aan of ongebruikte ruimte op die regel meetelt in de kosten. Het voorbeelddoel sluit deze uit, wat de gewenste afbrekingen kan veranderen. Voeg een klein voorbeeld toe waarin dat uitmaakt en vergelijk de voorgestelde uitvoer met de kostenregel die je werkelijk bedoelt.

Kan breedte in codepunten terminalbreedte vervangen?

Niet in het algemeen. Combinatietekens en brede tekens kunnen anders worden weergegeven dan hun aantal codepunten suggereert. Leg de meetwijze expliciet vast in je contract. Als terminalkolommen belangrijk zijn, definieer dat als aparte eis en beoordeel de benodigde verwerking in je echte renderomgeving.

Hoe beoordeel ik een optimalisatie zonder op de uitleg te vertrouwen?

Gebruik kleine invoer met enkele mogelijke afbrekingen en bereken de verwachte kosten onafhankelijk. Controleer of het voorstel volgens de vastgelegde regel een toegestaan minimum kiest. Voer daarna bredere projecttestgevallen uit om ook daarbuiten veranderd gedrag te vinden.

Wat moet er met een te lang woord gebeuren?

Leg vast of de opmaakfunctie het weigert, splitst of buiten de grens laat vallen. Het voorbeeld weigert woorden die de geaccepteerde breedte overschrijden. Beoordeel dat pad en de aanroeper, zodat een opmaakwijziging niet stilzwijgend een andere inhoudstransformatie of foutbeleid introduceert.

Download voor Windows ↗

LineCitrine · Bijgewerkt 2026-10-25