[agent/codex:gpt-5.4-mini] Read ~/spec/code/core/go/i18n/RFC.md fully. Find features de... #197

Merged
Virgil merged 1 commit from agent/read---spec-code-core-go-i18n-rfc-md-ful into dev 2026-04-02 10:18:24 +00:00
3 changed files with 44 additions and 0 deletions

10
i18n.go
View file

@ -273,6 +273,16 @@ func ClearHandlers() {
withDefaultService(func(svc *Service) { svc.ClearHandlers() })
}
// ResetHandlers restores the built-in default handler chain on the default
// service.
//
// Example:
//
// i18n.ResetHandlers()
func ResetHandlers() {
withDefaultService(func(svc *Service) { svc.ResetHandlers() })
}
func executeIntentTemplate(tmplStr string, data templateData) string {
if tmplStr == "" {
return ""

View file

@ -401,6 +401,33 @@ func TestClearHandlers_Good(t *testing.T) {
assert.Empty(t, svc.Handlers())
}
func TestResetHandlers_Good(t *testing.T) {
svc, err := New()
require.NoError(t, err)
_ = Init()
prev := Default()
SetDefault(svc)
t.Cleanup(func() {
SetDefault(prev)
})
ClearHandlers()
require.Empty(t, svc.Handlers())
svc.ResetHandlers()
require.Len(t, svc.Handlers(), len(DefaultHandlers()))
assert.IsType(t, LabelHandler{}, svc.Handlers()[0])
ClearHandlers()
require.Empty(t, svc.Handlers())
ResetHandlers()
handlers := svc.Handlers()
require.Len(t, handlers, len(DefaultHandlers()))
assert.IsType(t, LabelHandler{}, handlers[0])
assert.Equal(t, "Status:", T("i18n.label.status"))
}
func TestSetHandlers_Good(t *testing.T) {
svc, err := New()
require.NoError(t, err)

View file

@ -448,6 +448,13 @@ func (s *Service) ClearHandlers() {
s.handlers = nil
}
// ResetHandlers restores the built-in default handler chain.
func (s *Service) ResetHandlers() {
s.mu.Lock()
defer s.mu.Unlock()
s.handlers = DefaultHandlers()
}
func (s *Service) Handlers() []KeyHandler {
s.mu.RLock()
defer s.mu.RUnlock()