fix(spreadsheet): func_help 자동 완성에 B 2단계 함수 이어 붙임(브레인 지시로 B 가 sub1 파일 대신 고침)

spreadsheet_func_help.ts(주인 sub_laptop_1)가 B 의 FUNC_HELP_BATCH2 · 3(57개)을
안 읽어 자동 완성에 새 함수가 안 뜨던 것을 고침 — sub1 이 지금 다른 파일을 만져
브레인 지시로 B 가 이번만 대신 고침. sub1 의 test_stage2_func_help.ts 도 늘어난
개수(48→105)에 맞춰 고치고 2단계 함수 자동 완성 검증을 더함.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RrQ65VtGZbae2VKgYVMhmc
This commit is contained in:
2026-09-27 21:29:46 +09:00
co-authored by Claude Sonnet 5
parent c6e826fe1f
commit 4f1c048bb2
2 changed files with 30 additions and 4 deletions
@@ -1,6 +1,7 @@
/* =============================================================================
* spreadsheet_func_help.ts (2단계 · 주인 sub_laptop_1)
* 함수 자동 완성 목록 · 인자 도움말 — 1단계 함수 48 개(`spreadsheet_types.ts` 머리 「1단계 함수」)
* spreadsheet_func_help.ts (2단계 · 주인 sub_laptop_1 · 2단계 묶음은 B 가 대신 고침 2026-09-27)
* 함수 자동 완성 목록 · 인자 도움말 — 1단계 함수 48 개(`spreadsheet_types.ts` 머리 「1단계 함수」) +
* B 의 2단계 묶음(`spreadsheet_functions.ts` 의 `FUNC_HELP_BATCH2` · `FUNC_HELP_BATCH3`)을 이어 붙임.
* 이름 · 인자 모양 · 한 줄 뜻. B `spreadsheet_functions.ts`(실제 풀이)와는 따로 — 이 표는 화면 도움말 전용
* 정적 자료라 B 가 아직 없어도 씀. B 가 완성돼도 이름 목록이 갈리지 않게 이 표를 그대로 둠.
*
@@ -8,6 +9,8 @@
* `(` 를 친 뒤엔 `funcHelp(name)` 로 인자 도움말 풍선을 씀(지금 몇 번째 인자인지는 D 가 콤마를 세어 넘김).
* ========================================================================== */
import { FUNC_HELP_BATCH2, FUNC_HELP_BATCH3 } from "./spreadsheet_functions";
export interface FuncHelp {
이름: string;
/** 인자 모양 — 대괄호는 생략 가능 */
@@ -72,6 +75,8 @@ const TABLE: FuncHelp[] = [
{ 이름: "COUNTA", 꼴: "COUNTA(값1, [값2], …)", 뜻: "비어 있지 않은 칸 개수" },
{ 이름: "COUNTIF", 꼴: "COUNTIF(범위, 조건)", 뜻: "조건에 맞는 칸 개수" },
{ 이름: "SUMIF", 꼴: "SUMIF(범위, 조건, [더할범위])", 뜻: "조건에 맞는 칸(또는 짝 칸)의 합" },
...FUNC_HELP_BATCH2,
...FUNC_HELP_BATCH3,
];
const BY_NAME = new Map(TABLE.map((f) => [f.이름, f]));
@@ -88,7 +93,7 @@ export function funcHelp(name: string): FuncHelp | null {
return BY_NAME.get(name.toUpperCase()) ?? null;
}
/** 1단계 함수 48 개 다 있는지(시험용) */
/** 아는 함수 전부 개수(1단계 48 + 2단계 묶음 · 시험용) */
export function knownFunctionCount(): number {
return TABLE.length;
}
@@ -9,7 +9,7 @@ import {
} from "../../../A00_Common/spreadsheet/spreadsheet_func_help.ts";
import { assertEqual } from "./test_stage2_helpers.ts";
assertEqual(knownFunctionCount(), 48, "1단계 함수 48 개 다 있음");
assertEqual(knownFunctionCount(), 105, "1단계 48 + B 2단계 묶음(57) 다 있음");
assertEqual(
suggestFunctions("ROU").map((f) => f.이름),
@@ -44,5 +44,26 @@ const 실무13 = [
];
for (const name of 실무13) assertEqual(funcHelp(name) !== null, true, `실무 함수 ${name} 있음`);
// B 2단계 묶음(FUNC_HELP_BATCH2 · 3)이 자동 완성에 뜨는지(2026-09-27 — 자동 완성에 안 뜨던 것 고침)
const 이단계묶음 = [
"SUMIFS",
"XLOOKUP",
"TEXTJOIN",
"ISNUMBER",
"DATE",
"MEDIAN",
"RANK.EQ",
"TIME",
];
for (const name of 이단계묶음)
assertEqual(funcHelp(name) !== null, true, `2단계 함수 ${name} 있음`);
assertEqual(
suggestFunctions("SUMIF")
.map((f) => f.이름)
.sort(),
["SUMIF", "SUMIFS"],
"SUMIFS 도 SUMIF 접두사 자동 완성에 뜸",
);
if (process.exitCode) process.exit(process.exitCode);
console.log("spreadsheet_func_help 시험 끝");