From 11dcaf7383beb19bc8609f1589f0511966e1c270 Mon Sep 17 00:00:00 2001 From: Guillermo Ruffino Date: Mon, 12 May 2025 16:27:07 -0300 Subject: [PATCH] [vscode] provide version to editor (#8752) --- esphome/vscode.py | 15 +++++++++++++++ tests/unit_tests/test_vscode.py | 8 ++++++-- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/esphome/vscode.py b/esphome/vscode.py index fb62b60eac..d8cfe91938 100644 --- a/esphome/vscode.py +++ b/esphome/vscode.py @@ -7,6 +7,7 @@ from typing import Any from esphome.config import Config, _format_vol_invalid, validate_config import esphome.config_validation as cv +from esphome.const import __version__ as ESPHOME_VERSION from esphome.core import CORE, DocumentRange from esphome.yaml_util import parse_yaml @@ -97,7 +98,21 @@ def _ace_loader(fname: str) -> dict[str, Any]: return parse_yaml(fname, raw_yaml_stream) +def _print_version(): + """Print ESPHome version.""" + print( + json.dumps( + { + "type": "version", + "value": ESPHOME_VERSION, + } + ) + ) + + def read_config(args): + _print_version() + while True: CORE.reset() data = json.loads(input()) diff --git a/tests/unit_tests/test_vscode.py b/tests/unit_tests/test_vscode.py index f5ebd63f60..6e0bde23b2 100644 --- a/tests/unit_tests/test_vscode.py +++ b/tests/unit_tests/test_vscode.py @@ -18,8 +18,12 @@ def _run_repl_test(input_data): vscode.read_config(args) # Capture printed output - full_output = "".join(call[0][0] for call in mock_stdout.write.call_args_list) - return full_output.strip().split("\n") + full_output = "".join( + call[0][0] for call in mock_stdout.write.call_args_list + ).strip() + splitted_output = full_output.split("\n") + remove_version = splitted_output[1:] # remove first entry with version info + return remove_version def _validate(file_path: str):