Skip to content

[api] No delete_paragraph WASM function — text-blanking only, structure cannot be removed #271

@hyoseop1231

Description

@hyoseop1231

Summary

@rhwp/core 0.7.3 에는 paragraph 구조 자체를 삭제 하는 WASM API 가 없습니다. 현재는 replaceText(text, "") 폴백으로 text 만 비울 수 있을 뿐이라, paragraph 자체를 제거하는 시나리오가 엔진 레벨에서 구현 불가합니다.

Environment

  • @rhwp/core 0.7.3
  • Node.js v25.6.0 on macOS arm64

Context

MCP / CLI / Swift bridge 는 공통적으로 deleteSelection 같은 "선택된 paragraph 를 지워버리기" 의미론을 제공해야 합니다. 지금은 다음과 같이 처리:

// rhwp-mcp 의 deleteSelection 폴백
doc.replaceAll(block.text, "", true);
// → 빈 paragraph 가 남음 (structure 유지, text 만 비움)

사용자 관점에서는:

  • "이 문단을 지워" 의도 → 빈 paragraph 가 남음
  • 여러 paragraph 삭제 시 문서 구조가 점점 공허해짐

Expected

deleteParagraph(section, paraIdx) WASM 함수 — 해당 paragraph 의 control, run, property 를 모두 제거하고 이후 paragraph 의 paraIdx 를 재조정.

Suggested API

doc.delete_paragraph(section: usize, paraIdx: usize) → JSON
  { ok: bool, removedCharCount: usize, newParagraphCount: usize }

범위 검사:

  • paraIdx < paragraphCount(section) 필수
  • 섹션의 마지막 paragraph 삭제 시 섹션 empty 여부 정책 결정 (한컴 규약상 paragraph 0 은 유지?)

Impact

해소 시 rhwp-mcp 의 deleteSelection 폴백 제거 가능, 저수준 tool rhwp_delete_paragraph 노출 가능, Swift bridge 의 degradation 경로 제거.

English summary

There is no WASM API to actually remove a paragraph; only text-blanking via replaceAll(text, "") is possible. Consumers need a delete_paragraph(section, paraIdx) entry to implement proper delete semantics. Please consider exposing one.

References

  • 다운스트림 폴백 경로 (비공개): rhwp-mcp/src/planner/mutation-planner.ts deleteActions + apply-edit.ts executeParagraphAction case "deleteParagraph"

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions