Improving completion to support the correct table name for autocompletion and formatting

This commit is contained in:
2026-02-07 18:26:29 +01:00
parent ab4f251f0c
commit 3fc4384251
10 changed files with 49 additions and 58 deletions

View File

@@ -3,8 +3,10 @@ Completion engine for the formatting DSL.
Implements the BaseCompletionEngine for DataGrid formatting rules.
"""
from myfasthtml.core.dsl.base_completion import BaseCompletionEngine
from myfasthtml.core.dsl.types import Position, Suggestion, CompletionResult
from myfasthtml.core.utils import make_safe_id
from . import suggestions as suggestions_module
from .contexts import Context, DetectedScope, detect_scope, detect_context
from .provider import DatagridMetadataProvider
@@ -21,7 +23,7 @@ class FormattingCompletionEngine(BaseCompletionEngine):
- Conditions with operators and values
"""
def __init__(self, provider: DatagridMetadataProvider):
def __init__(self, provider: DatagridMetadataProvider, table_name: str):
"""
Initialize the completion engine.
@@ -30,6 +32,8 @@ class FormattingCompletionEngine(BaseCompletionEngine):
"""
super().__init__(provider)
self.provider: DatagridMetadataProvider = provider
self.table_name: str = table_name # current table name
self._id = "formatting_completion_engine#" + make_safe_id(table_name)
def detect_scope(self, text: str, current_line: int) -> DetectedScope:
"""

View File

@@ -5,10 +5,12 @@ Provides access to DataGrid metadata (columns, values, row counts)
for context-aware autocompletion.
"""
from typing import Protocol, Any
from typing import Any
from myfasthtml.core.dsl.base_provider import BaseMetadataProvider
class DatagridMetadataProvider(Protocol):
class DatagridMetadataProvider(BaseMetadataProvider):
"""
Protocol for providing DataGrid metadata to the autocompletion engine.
@@ -70,25 +72,3 @@ class DatagridMetadataProvider(Protocol):
Number of rows
"""
...
def list_style_presets(self) -> list[str]:
"""
Return the list of available style preset names.
Includes default presets (primary, error, etc.) and custom presets.
Returns:
List of style preset names
"""
...
def list_format_presets(self) -> list[str]:
"""
Return the list of available format preset names.
Includes default presets (EUR, USD, etc.) and custom presets.
Returns:
List of format preset names
"""
...