1
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
2
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
5
using System.Collections.Generic;
6
using System.Reflection;
7
using ICSharpCode.SharpDevelop.Dom;
8
using IronPython.Modules;
9
using IronPython.Runtime;
11
namespace ICSharpCode.PythonBinding
13
public class PythonImportCompletion
15
public static readonly NamespaceEntry ImportAll = new NamespaceEntry("*");
17
IProjectContent projectContent;
18
static readonly PythonStandardModules standardPythonModules = new PythonStandardModules();
20
public PythonImportCompletion(IProjectContent projectContent)
22
this.projectContent = projectContent;
25
public List<ICompletionEntry> GetCompletionItems()
27
return GetCompletionItems(String.Empty);
30
public List<ICompletionEntry> GetCompletionItems(string subNamespace)
32
List<ICompletionEntry> items = projectContent.GetNamespaceContents(subNamespace);
34
if (String.IsNullOrEmpty(subNamespace)) {
35
AddStandardPythonModules(items);
40
void AddStandardPythonModules(List<ICompletionEntry> items)
42
items.AddRange(standardPythonModules);
45
public List<ICompletionEntry> GetCompletionItemsFromModule(string module)
47
List<ICompletionEntry> items = GetCompletionItemsFromStandardPythonModules(module);
49
items = projectContent.GetNamespaceContents(module);
55
List<ICompletionEntry> GetCompletionItemsFromStandardPythonModules(string module)
57
PythonStandardModuleType type = standardPythonModules.GetModuleType(module);
59
return GetCompletionItemsFromModule(type);
64
List<ICompletionEntry> GetCompletionItemsFromModule(PythonStandardModuleType type)
66
PythonModuleCompletionItems moduleItems = PythonModuleCompletionItemsFactory.Create(type);
67
List<ICompletionEntry> items = new List<ICompletionEntry>(moduleItems);