def test_enabled(self): self.view.run_command('insert', {"characters": '.'}) self.client.send_request = MagicMock() handler = CompletionHandler(self.view) self.assertEquals(handler.state, CompletionState.IDLE) result = handler.on_query_completions("", [1]) self.assertIsNotNone(result) items, mask = result self.assertEquals(len(items), 0) self.assertEquals( mask, sublime.INHIBIT_WORD_COMPLETIONS | sublime.INHIBIT_EXPLICIT_COMPLETIONS) self.assertTrue(handler.initialized) self.assertTrue(handler.enabled) self.assertEquals(handler.state, CompletionState.REQUESTING) self.client.send_request.assert_called_once()
def test_item_with_partial_edit(self): # issue #368, where using textEdit breaks PHP completions: # $| # PHP language server returns a partial completion "what" # sublime uses it to replace '$' with 'what' # to test: # settings.complete_using_text_edit = True yield 100 # wait for file to be open item = { 'insertText': None, # 'sortText': None, # 'filterText': None, 'label': '$what', 'textEdit': { 'range': { 'end': { 'character': 1, 'line': 0 }, 'start': { 'character': 1, 'line': 0 } }, 'newText': 'what' } } handler = CompletionHandler(self.view) handler.last_location = 1 handler.last_prefix = "" result = handler.format_completion(item) self.assertEqual(len(result), 2) self.assertEqual("$what", result[0]) self.assertEqual("\\$what", result[1])
def test_is_applicable(self): self.assertEquals(len(client_configs.all), 1) self.assertTrue(CompletionHandler.is_applicable(dict(syntax=SUPPORTED_SYNTAX)))
def test_is_not_applicable(self): self.assertFalse(CompletionHandler.is_applicable(dict()))
def test_prefers_insert_text(self): handler = CompletionHandler(self.view) result = handler.format_completion(create_completion_item("asdf", "Asdf")) self.assertEqual(len(result), 2) self.assertEqual("asdf", result[0]) self.assertEqual("Asdf", result[1])
def test_only_label_item(self): handler = CompletionHandler(self.view) result = handler.format_completion(create_completion_item("asdf")) self.assertEqual(len(result), 2) self.assertEqual("asdf", result[0]) self.assertEqual("asdf", result[1])
def test_is_applicable(self): self.assertTrue( CompletionHandler.is_applicable(dict(syntax=SUPPORTED_SYNTAX)))