44from pathlib import Path
55from typing import Literal , cast , TYPE_CHECKING
66from utils .generate_enumerations import generate_enumerations
7+ from utils .generate_notifications import generate_notifications
8+ from utils .generate_requests_and_responses import generate_requests_and_responses
79from utils .generate_structures import generate_structures
810from utils .generate_type_aliases import generate_type_aliases
911from utils .helpers import get_new_literal_structures , reset_new_literal_structures
@@ -54,7 +56,7 @@ def generate(output: str) -> None:
5456 'from __future__ import annotations' ,
5557 'from enum import IntEnum, IntFlag, StrEnum' ,
5658 'from typing import Any, Dict, List, Literal, Mapping, Sequence, TypedDict, Union' ,
57- 'from typing_extensions import NotRequired\n \n ' ,
59+ 'from typing_extensions import NotRequired, TypeAlias \n \n ' ,
5860 'URI = str' ,
5961 'DocumentUri = str' ,
6062 'Uint = int' ,
@@ -68,15 +70,19 @@ def generate(output: str) -> None:
6870 content += '\n ' .join (generate_type_aliases (lsp_json ['typeAliases' ], ALIAS_OVERRIDES ))
6971 content += '\n \n \n '
7072 content += '\n \n \n ' .join (generate_structures (lsp_json ['structures' ]))
71- content += '\n \n '
73+ content += '\n \n \n '
74+ content += '\n \n \n ' .join (generate_requests_and_responses (lsp_json ['requests' ]))
75+ content += '\n \n \n '
76+ content += '\n \n \n ' .join (generate_notifications (lsp_json ['notifications' ]))
77+ content += '\n '
7278 content += '\n ' .join (get_new_literal_structures ())
7379
7480 # Remove trailing spaces.
7581 lines = content .split ('\n ' )
7682 lines = [line .rstrip () for line in lines ]
7783 content = '\n ' .join (lines )
7884
79- Path (output ).write_text (content )
85+ Path (output ).write_text (content , encoding = 'utf-8' )
8086
8187
8288generate (output = './generated/lsp_types.py' )
0 commit comments