CodeEditApp / CodeEditApp/CodeEditSourceEditor

✨ Placeholder Support

Abierto
#287 4 comentarios 0 reacciones 0 asignados Ver en GitHub
enhancement
Lenguaje dominante
Swift
Estrellas
719
Forks
160
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

### Description

Implement support for placeholders in CodeEdit, similar to Xcode’s `<#placeholder#>` feature. This would allow developers to insert and cycle through editable placeholders in their code, improving productivity and code clarity during development.

### Use Case

This feature would be particularly useful for defining temporary or template-like code constructs, such as:
```swift
let <#name#> = <#value#>
```

Placeholders would:
1. Be highlighted visually.
2. Be navigable (e.g., via Tab key).
3. Allow inline editing to replace the placeholder text.

### Expected Behavior

- When a placeholder is inserted (e.g., `<#placeholder#>`), it should:
- Appear visually distinct (e.g., highlighted with a subtle background color or outline).
- Be editable directly in the code editor.
- Allow navigation between placeholders using keyboard shortcuts like Tab and Shift+Tab.
- Placeholders should support nested constructs (e.g., `let <#name#> = <#type#>(<#arguments#>)`).

### Technical Notes

- Integrate placeholder handling with the current text editing features.
- Consider compatibility with existing syntax highlighting and LSP integration.

### Steps to Implement

1. Define a syntax for placeholders (e.g., `<#placeholder#>`).
2. Update the text editor to recognize and render placeholders.
3. Add keyboard navigation support for placeholders.
4. Ensure placeholder edits are reflected in the editor state.

### Additional Context

This feature would align CodeEdit with Xcode’s behavior, making it a more familiar and seamless experience for developers who work on macOS. It also complements other code editing enhancements, such as autocompletion and LSP support.

### Screenshots

image

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.