Compare commits

..

1 commit

Author SHA1 Message Date
James Westman
02344139c2
language: Add expression literals
Add expression literals, so you can set properties of type
Gtk.Expression.
2024-12-24 21:12:38 -06:00
14 changed files with 6 additions and 94 deletions

View file

@ -146,10 +146,8 @@ def format(data, tab_size=2, insert_space=True):
is_child_type = False is_child_type = False
elif str_item in CLOSING_TOKENS: elif str_item in CLOSING_TOKENS:
if str_item == "]" and str(last_not_whitespace) != "[": if str_item == "]" and last_not_whitespace != ",":
current_line = current_line[:-1] current_line = current_line[:-1]
if str(last_not_whitespace) != ",":
current_line += ","
commit_current_line() commit_current_line()
current_line = "]" current_line = "]"
elif str(last_not_whitespace) in OPENING_TOKENS: elif str(last_not_whitespace) in OPENING_TOKENS:

View file

@ -143,13 +143,12 @@ class Signal(AstNode):
@property @property
def document_symbol(self) -> DocumentSymbol: def document_symbol(self) -> DocumentSymbol:
detail = self.ranges["detail_start", "detail_end"]
return DocumentSymbol( return DocumentSymbol(
self.full_name, self.full_name,
SymbolKind.Event, SymbolKind.Event,
self.range, self.range,
self.group.tokens["name"].range, self.group.tokens["name"].range,
detail.text if detail is not None else None, self.ranges["detail_start", "detail_end"].text,
) )
def get_reference(self, idx: int) -> T.Optional[LocationLink]: def get_reference(self, idx: int) -> T.Optional[LocationLink]:

View file

@ -487,14 +487,6 @@ class ArrayValue(AstNode):
range=quoted_literal.range, range=quoted_literal.range,
) )
) )
elif isinstance(value.child, Translated):
errors.append(
CompileError(
"Arrays can't contain translated strings",
range=value.child.range,
)
)
if len(errors) > 0: if len(errors) > 0:
raise MultipleErrors(errors) raise MultipleErrors(errors)

View file

@ -118,7 +118,6 @@ class LanguageServer:
self.client_capabilities = {} self.client_capabilities = {}
self.client_supports_completion_choice = False self.client_supports_completion_choice = False
self._open_files: T.Dict[str, OpenFile] = {} self._open_files: T.Dict[str, OpenFile] = {}
self._exited = False
def run(self): def run(self):
# Read <doc> tags from gir files. During normal compilation these are # Read <doc> tags from gir files. During normal compilation these are
@ -126,7 +125,7 @@ class LanguageServer:
xml_reader.PARSE_GIR.add("doc") xml_reader.PARSE_GIR.add("doc")
try: try:
while not self._exited: while True:
line = "" line = ""
content_len = -1 content_len = -1
while content_len == -1 or (line != "\n" and line != "\r\n"): while content_len == -1 or (line != "\n" and line != "\r\n"):
@ -222,14 +221,6 @@ class LanguageServer:
}, },
) )
@command("shutdown")
def shutdown(self, id, params):
self._send_response(id, None)
@command("exit")
def exit(self, id, params):
self._exited = True
@command("textDocument/didOpen") @command("textDocument/didOpen")
def didOpen(self, id, params): def didOpen(self, id, params):
doc = params.get("textDocument") doc = params.get("textDocument")

View file

@ -1,21 +0,0 @@
using Gtk 4.0;
Box {
styles []
}
Box {
styles ["a"]
}
Box {
styles ["a",]
}
Box {
styles ["a", "b"]
}
Box {
styles ["a", "b",]
}

View file

@ -1,31 +0,0 @@
using Gtk 4.0;
Box {
styles []
}
Box {
styles [
"a",
]
}
Box {
styles [
"a",
]
}
Box {
styles [
"a",
"b",
]
}
Box {
styles [
"a",
"b",
]
}

View file

@ -11,7 +11,7 @@ Overlay {
notify::icon-name => $on_icon_name_changed(label) swapped; notify::icon-name => $on_icon_name_changed(label) swapped;
styles [ styles [
"destructive", "destructive"
] ]
} }

View file

@ -1,5 +0,0 @@
using Gtk 4.0;
Label {
notify::
}

View file

@ -1,2 +0,0 @@
5,1,0,Expected a signal detail name
4,9,3,Unexpected tokens

View file

@ -1,7 +0,0 @@
using Gtk 4.0;
StringList {
strings: [
_("Test")
];
}

View file

@ -1 +0,0 @@
5,5,9,Arrays can't contain translated strings

View file

@ -5,6 +5,6 @@ AboutDialog about {
authors: [ authors: [
"Jane doe <jane-doe@email.com>", "Jane doe <jane-doe@email.com>",
"Jhonny D <jd@email.com>", "Jhonny D <jd@email.com>"
]; ];
} }

View file

@ -3,6 +3,6 @@ using Gtk 4.0;
Label { Label {
styles [ styles [
"class-1", "class-1",
"class-2", "class-2"
] ]
} }

View file

@ -47,4 +47,3 @@ class TestFormatter(unittest.TestCase):
self.assert_format_test("correct1.blp", "correct1.blp") self.assert_format_test("correct1.blp", "correct1.blp")
self.assert_format_test("string_in.blp", "string_out.blp") self.assert_format_test("string_in.blp", "string_out.blp")
self.assert_format_test("comment_in.blp", "comment_out.blp") self.assert_format_test("comment_in.blp", "comment_out.blp")
self.assert_format_test("lists_in.blp", "lists_out.blp")