@@ -152,6 +152,7 @@ async def resolve(self, sender: Any, completion_item: CompletionItem) -> Complet
152152]
153153
154154HEADERS = ["Test Case" , "Setting" , "Variable" , "Keyword" , "Comment" , "Task" ]
155+ RESOURCE_HEADERS = ["Setting" , "Variable" , "Keyword" , "Comment" ]
155156
156157
157158__snippets : Optional [Dict [str , List [str ]]] = None
@@ -398,8 +399,13 @@ async def resolve(self, completion_item: CompletionItem) -> CompletionItem:
398399 return completion_item
399400
400401 async def create_headers_completion_items (self , range : Optional [Range ]) -> List [CompletionItem ]:
402+ doc_type = await self .parent .documents_cache .get_document_type (self .document )
403+
401404 if self .namespace .languages is None :
402- headers : Iterable [str ] = HEADERS
405+ if doc_type in [DocumentType .RESOURCE , DocumentType .INIT ]:
406+ headers : Iterable [str ] = RESOURCE_HEADERS
407+ else :
408+ headers = HEADERS
403409 else :
404410 languages = self .namespace .languages .languages
405411
@@ -410,7 +416,19 @@ async def create_headers_completion_items(self, range: Optional[Range]) -> List[
410416 ):
411417 languages = [v for v in languages if v .code != "en" ]
412418
413- headers = set (itertools .chain (* (lang .headers .keys () for lang in languages )))
419+ headers = set (
420+ itertools .chain (
421+ * (
422+ [
423+ k
424+ for k , v in lang .headers .items ()
425+ if doc_type not in [DocumentType .RESOURCE , DocumentType .INIT ]
426+ or v not in ("Test Cases" , "Tasks" )
427+ ]
428+ for lang in languages
429+ )
430+ )
431+ )
414432
415433 return [
416434 CompletionItem (
0 commit comments