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:
@@ -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 시험 끝");
|
||||
|
||||
Reference in New Issue
Block a user