WWindowSpan
AI 코딩 작업 공간

고정 행 높이의 표시 범위

고정 행 높이와 스크롤 위치 및 화면 높이로 반열린 표시 행 범위를 계산하세요.

● ● ●WindowSpan●
작업 흐름 · 고정 행 높이의 표시 범위 ×
from math import isfinite, ceil

def row_window(count, row_height, offset, viewport, overscan=1):
    if type(count) is not int or count < 0 or type(overscan) is not int or overscan < 0:
        raise ValueError("rows.count")
    if not all(type(x) in (int, float) and isfinite(x) for x in (row_height, offset, viewport)) or row_height <= 0 or viewport < 0:
        raise ValueError("rows.geometry")
    start_units = max(0, offset) / row_height
    first = count if start_units >= count else int(start_units)
    if first == count or viewport == 0:
        return first, first
    span = viewport / row_height
    end = count if span >= count - start_units else min(count, ceil(start_units + span) + overscan)
    return max(0, first - overscan), end
✳고정 행 높이의 표시 범위
✓ 변경 사항적용하기 전에 검토하세요 ↗
작업 공간 예시 화면
모델
기본 URL과 필요한 API 키로 OpenAI 호환 또는 Anthropic 엔드포인트를 설정하고 연결을 테스트하세요. 로컬 모델 서버는 실행 중이어야 합니다. 원격 도구는 데이터를 별도로 전송할 수 있습니다.
프로젝트
음수 스크롤, 끝 초과와 높이 영을 시험하고 인덱스를 항목 수로 제한하며 잘못된 행 높이를 거부하세요.
적용하기 전에 검토하세요
실제 동작을 예상 결과와 비교하세요. 검사가 실패하면 다음 변경을 하기 전에 원인을 조사하세요.
작업 흐름

고정 행 높이의 표시 범위

작업 흐름 ↗
작업 흐름
from math import isfinite, ceil

def row_window(count, row_height, offset, viewport, overscan=1):
    if type(count) is not int or count < 0 or type(overscan) is not int or overscan < 0:
        raise ValueError("rows.count")
    if not all(type(x) in (int, float) and isfinite(x) for x in (row_height, offset, viewport)) or row_height <= 0 or viewport < 0:
        raise ValueError("rows.geometry")
    start_units = max(0, offset) / row_height
    first = count if start_units >= count else int(start_units)
    if first == count or viewport == 0:
        return first, first
    span = viewport / row_height
    end = count if span >= count - start_units else min(count, ceil(start_units + span) + overscan)
    return max(0, first - overscan), end
AI 코딩 작업 공간

다음 아이디어가 여기서 시작됩니다.

Windows용 다운로드 ↗