keymanapp / keymanapp/keyman

feat(developer): (KM Language) Support Anonymous Lists in any() and index()

Open
#7,518 1 comment 0 reactions 0 assignees View on GitHub
developer/ developer/compilers/ feat m:kmn
Dominant language
Pascal
Stars
534
Forks
143
Avg merge
2d 10h
Merged PRs (30d)
113

Description

### Is your feature request related to a problem? Please describe.

I find that in many cases with my keyboards I will use `store()` to define a variable that is used **only** once, either in `any()` or `index()` . So there is no benefit realized from reuse of the variables. The pattern is like:

```
store(foo) 'abcd'
store(bar) 'ABCD'

begin Unicode > use(main)
group(main) using keys

+ any(foo) > index(bar,1)
```

### Describe the solution you'd like

If nothing else, the inline lists will lead to shorter KMN code files:

```
begin Unicode > use(main)
group(main) using keys

+ any('abcd')> index('ABCD',1)
```

### Describe alternatives you've considered

_No response_

### Related issues

_No response_

### Keyman apps

- [ ] Keyman for Android
- [ ] Keyman for iPhone and iPad
- [ ] Keyman for Linux
- [ ] Keyman for macOS
- [ ] Keyman for Windows
- [X] Keyman Developer
- [ ] KeymanWeb
- [ ] Other - give details at bottom of form

### Keyman version

15.0.270

### Operating system

Windows 11

### Device

Windows Laptop

### Target application

_No response_

### Browser

_No response_

### Keyboard name

_No response_

### Keyboard version

_No response_

### Language name

_No response_

### Additional context

_No response_

Contributor guide

Open the contributing guide

Research direction

Start in Keyman Developer's KM language handling for the any() and index() entry points, using the existing store() examples and the proposed anonymous-list syntax as the behavioral reference. Done means expressions such as any('abcd') and index('ABCD',1) are accepted and behave like their stored-variable equivalents.

Written by the indexing model from the issue text.

Assessment

Domain
tooling
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.