Codezeilen, Kommentare und Leerzeilen zählen
Sehen Sie, wie viel einer Datei echter Code ist: Die Beispielfunktion ergibt 6 Zeilen, davon 4 Code, 1 Kommentar und 1 Leerzeile, beurteilt nach den Kommentarregeln der Sprache, die Sie wählen. Kostenlos in Ihrem Browser.
- Kostenlos
- Läuft in Ihrem Browser
- Ohne Anmeldung
- Ihre Daten bleiben auf Ihrem Gerät
Im Browser ausführen – kostenlos
Rechenbeispiel
- Sprache
- Javascript
- Zeilen insgesamt
- 6
- Leerzeilen
- 1
- Kommentarzeilen
- 1
- Codezeilen
- 4
Messen Sie einen Quelltextausschnitt oder eine vollständige Datei anhand der Kommentarregeln der gewählten Programmiersprache. Der Zähler ordnet jede physische Zeile genau einer Kategorie zu: leer, Kommentar oder Code. Zusätzlich liefert er die Gesamtzahl. Er erkennt gängige Zeilen- und Blockkommentare, ignoriert Kommentarmarker in Zeichenketten und wertet gemischte Zeilen als Code. Damit erhalten Sie reproduzierbare Ergebnisse für Berichte, Reviews, Migrationen und Automatisierungen.
Wählen Sie die Sprache und bewahren Sie den Quelltext
Senden Sie den Code unverändert und wählen Sie seine Sprache aus der unterstützten Liste. Das ist wichtig, weil identische Zeichen je nach Ökosystem etwas anderes bedeuten: Eine Raute beginnt Kommentare in Python und Shell, zwei Schrägstriche in JavaScript und Java, zwei Bindestriche in SQL, während HTML ein Markerpaar verwendet. Der Zähler nutzt die gewählte Tabelle und rät weder anhand des Dateinamens noch des Inhalts.
LF, CRLF und alleinstehende Wagenrückläufe trennen Zeilen. Ein abschließender Umbruch erzeugt eine leere physische Zeile; auch eine leere Zeichenkette stellt eine Leerzeile dar. Entfernen Sie keine Kommentare und kürzen Sie den Text nicht, wenn diese Details gemessen werden sollen.
Eine nicht aufgeführte Sprache erzeugt einen Eingabefehler statt irreführender Standardwerte.
Verstehen Sie die Einordnung jeder Zeile
Jede physische Zeile gehört genau einmal zu einer exklusiven Kategorie. Eine Zeile nur aus Leerzeichen oder Tabulatoren ist leer, außer sie liegt in einem offenen Blockkommentar. Reiner Kommentartext zählt als Kommentar.
Sobald ein Codeelement vorhanden ist, zählt die Zeile als Code, auch bei einem abschließenden oder eingebetteten Kommentar. Daher ergeben die drei Kategorien stets die Gesamtzahl. Blockkommentare bleiben bis zum Endmarker aktiv; Code vor dem Start oder nach dem Ende macht die Zeile zur Codezeile.
Der Scanner berücksichtigt einfache, doppelte und rückwärts gerichtete Anführungszeichen sowie Escape-Zeichen. Eine URL mit zwei Schrägstrichen oder eine Zeichenkette mit Raute bleibt deshalb Code. Gezählt werden physische Zeilen, nicht Anweisungen: Mehrere Anweisungen in einer Zeile ergeben nur eine Codezeile.
Verwenden Sie die Summen nach festen Regeln
Die Antwort enthält die normalisierte Sprache sowie Gesamt-, Leer-, Kommentar- und Codezeilen. Prüfen Sie das Ergebnis, indem Sie die drei Kategorien addieren und mit der Gesamtzahl vergleichen. Codezeilen sind nur ein grober Hinweis auf Umfang, Kommentare liefern Dokumentationskontext und Leerzeilen Formatierungskontext; keine Kennzahl misst unmittelbar Qualität oder Produktivität.
Generierte Dateien, Abhängigkeiten, Tests und kompakte Stile verändern die Zahlen erheblich. Legen Sie für Repository-Berichte zuerst den Umfang fest, verarbeiten Sie jede Datei mit der richtigen Sprache und dokumentieren Sie die Aggregation. Der Zähler durchsucht keine Dateien, leitet keine Erweiterungen ab und nutzt weder Netzwerk, Uhr noch Zufall.
Anwendungsfälle
Repository-Bestand erfassen
Klassifizieren Sie Quelldateien und bündeln Sie konsistente Summen für Code, Kommentare und Leerzeilen.
Migrationsumfang abschätzen
Vergleichen Sie den physischen Umfang ausgewählter Komponenten vor einem Sprach- oder Frameworkwechsel.
Generierten Code überwachen
Speichern Sie deterministische Kategorien und erkennen Sie unerwartete Änderungen an Code oder Kommentaren.
Häufige Fragen
Zählt eine Codezeile mit Endkommentar doppelt?
Nein. Sie zählt einmal als Codezeile, sodass sich die Kategorien gegenseitig ausschließen.
Werden Marker in Zeichenketten als Kommentare erkannt?
Nein. Marker in erkannten, zitierten Zeichenketten bleiben Bestandteil des Codes.
Wie zählen mehrzeilige Blockkommentare?
Reine Blockzeilen sind Kommentarzeilen; enthält eine Zeile zusätzlich Code, ist sie eine Codezeile.
Erkennt das Werkzeug die Programmiersprache selbst?
Nein. Sie wählen die Sprache aus der Liste, und deren Kommentarregeln werden angewendet. Nichts wird aus Dateiname oder Inhalt erraten, daher ergibt derselbe Text immer dieselbe Zählung, und ein mehrdeutiger Ausschnitt wird nicht nach falschen Regeln bewertet.
Wird ein Zeilenumbruch am Ende als Leerzeile gezählt?
Ja. Ein abschließender Zeilenumbruch erzeugt danach eine leere Zeile, die als Leerzeile zählt. Deshalb hat die Beispielfunktion 1 Leerzeile bei insgesamt 6 Zeilen. Entfernen Sie den Umbruch vorher nicht, wenn er in der Messung erscheinen soll.
Verwandte Tools
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/dev2/count-lines-of-code \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"function add(a, b) {\n // Return the sum\n return a + b;\n}\n","language":"javascript"}'const res = await fetch("https://api.kit.forhosting.com/dev2/count-lines-of-code", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "function add(a, b) {\n // Return the sum\n return a + b;\n}\n",
"language": "javascript"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev2/count-lines-of-code",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "function add(a, b) {\n // Return the sum\n return a + b;\n}\n",
"language": "javascript"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev2/count-lines-of-code", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"function add(a, b) {\\n // Return the sum\\n return a + b;\\n}\\n","language":"javascript"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"function add(a, b) {\n // Return the sum\n return a + b;\n}\n","language":"javascript"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev2/count-lines-of-code", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"text": "function add(a, b) {\n // Return the sum\n return a + b;\n}\n",
"language": "javascript"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev2.count_lines_of_code",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |
Technische Hinweise
Verwenden Sie die Summen nach festen Regeln
Er untersucht ausschließlich den gelieferten Text; gleiche Eingaben erzeugen dasselbe JSON.
Technische Fragen
Was kostet eine Zählung?
Eine API-Anfrage kostet $0.002. Im Browser läuft dieselbe deterministische Logik lokal.
Was geschieht bei einer unbekannten Sprache?
Die Fähigkeit gibt einen invalid_input-Fehler für die nicht erkannte Sprache zurück, ohne Regeln zu erraten.