[gnome-builder] jedi: add parameters with defaults to completion list



commit a0814b97a6a9bd48e0690eddb42667e38029465c
Author: Christian Hergert <christian hergert me>
Date:   Fri Oct 2 03:21:10 2015 -0700

    jedi: add parameters with defaults to completion list
    
    This shows the parameter list with jedi results as well as showing them
    when expanding the snippet.

 plugins/jedi/jedi_plugin.py |   28 ++++++++++++++++++++--------
 1 files changed, 20 insertions(+), 8 deletions(-)
---
diff --git a/plugins/jedi/jedi_plugin.py b/plugins/jedi/jedi_plugin.py
index ab8431c..b9c3361 100644
--- a/plugins/jedi/jedi_plugin.py
+++ b/plugins/jedi/jedi_plugin.py
@@ -327,7 +327,7 @@ class JediCompletionProvider(Ide.Object,
                 for param in params[:-1]:
                     tab_stop += 1
                     chunk = Ide.SourceSnippetChunk()
-                    chunk.set_text(param.name)
+                    chunk.set_text(param.description.replace('\n',''))
                     chunk.set_text_set(True)
                     chunk.set_tab_stop(tab_stop)
                     snippet.add_chunk(chunk)
@@ -339,7 +339,7 @@ class JediCompletionProvider(Ide.Object,
 
                 tab_stop += 1
                 chunk = Ide.SourceSnippetChunk()
-                chunk.set_text(params[-1].name)
+                chunk.set_text(params[-1].description.replace('\n',''))
                 chunk.set_text_set(True)
                 chunk.set_tab_stop(tab_stop)
                 snippet.add_chunk(chunk)
@@ -384,16 +384,28 @@ class JediCompletionProposal(Ide.CompletionItem, GtkSource.CompletionProposal):
         return self.completion.name
 
     def do_match(self, query, casefold):
-        ret, priority = Ide.CompletionItem.fuzzy_match(
-                self.completion.name,
-                self.provider.current_word_lower)
+        ret, priority = Ide.CompletionItem.fuzzy_match(self.completion.name,
+                                                       self.provider.current_word_lower)
         self.set_priority(priority)
         return ret
 
     def do_get_markup(self):
-        return Ide.CompletionItem.fuzzy_highlight(
-                self.completion.complete,
-                self.provider.current_word_lower)
+        name = Ide.CompletionItem.fuzzy_highlight(self.completion.complete,
+                                                  self.provider.current_word_lower)
+        parts = [name]
+        if self.completion.real_type == 'function':
+            parts.append('(')
+            if hasattr(self.completion, 'gi_params'):
+                params = self.completion.gi_params
+            else:
+                params = self.completion.params
+            if params:
+                for param in params[:-1]:
+                    parts.append(param.description.replace('\n',''))
+                    parts.append(', ')
+                parts.append(params[-1].description.replace('\n',''))
+            parts.append(')')
+        return ''.join(parts)
 
     def do_get_text(self):
         return self.completion.complete


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]