コード例 #1
0
        public ScriptEditorWindow(
            DynamoViewModel dynamoViewModel,
            PythonNode nodeModel,
            NodeView nodeView,
            ref ModelessChildWindow.WindowRect windowRect
            ) : base(nodeView, ref windowRect)
        {
            this.Closed         += OnScriptEditorWindowClosed;
            this.dynamoViewModel = dynamoViewModel;
            this.nodeModel       = nodeModel;

            completionProvider = new SharedCompletionProvider(nodeModel.Engine, dynamoViewModel.Model.PathManager.DynamoCoreDirectory);
            completionProvider.MessageLogged += dynamoViewModel.Model.Logger.Log;
            nodeModel.CodeMigrated           += OnNodeModelCodeMigrated;

            InitializeComponent();
            this.DataContext = this;

            if (Dynamo.Configuration.DebugModes.IsEnabled("PythonEngineSelectionUIDebugMode"))
            {
                EngineSelectorComboBox.Visibility = Visibility.Visible;
            }

            Dynamo.Logging.Analytics.TrackScreenView("Python");
        }
コード例 #2
0
        public void SharedCoreCanReturnCLRCompletionData()
        {
            var provider = new SharedCompletionProvider(PythonNodeModels.PythonEngineVersion.IronPython2, "");

            Assert.IsNotNull(provider);
            var str = "\nimport System.Collections\nSystem.Collections.";

            var completionData = provider.GetCompletionData(str);
            var completionList = completionData.Select(d => d.Text);

            Assert.IsTrue(completionList.Any());
            Assert.IsTrue(completionList.Intersect(new[] { "Hashtable", "Queue", "Stack" }).Count() == 3);
            Assert.AreEqual(29, completionData.Length);
        }
コード例 #3
0
        public void SharedCoreCanReturnPythonCompletionData()
        {
            var dynCorePath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
            var provider    = new SharedCompletionProvider(PythonNodeModels.PythonEngineVersion.IronPython2, dynCorePath);

            Assert.IsNotNull(provider);
            var str = "import math\n math.";

            var completionData = provider.GetCompletionData(str);
            var completionList = completionData.Select(d => d.Text);

            Assert.IsTrue(completionList.Any());
            Assert.IsTrue(completionList.Intersect(new[] { "degrees", "radians", "fmod" }).Count() == 3);
            Assert.AreEqual(45, completionData.Length);
        }
コード例 #4
0
        public void SharedCoreCanReturnCLRCompletionData()
        {
            var provider = new SharedCompletionProvider(PythonEngineManager.CPython3EngineName, "");

            Assert.IsNotNull(provider);
            var str = "\nimport System.Collections\nSystem.Collections.";

            var completionData = provider.GetCompletionData(str);
            var completionList = completionData.Select(d => d.Text);

            Assert.IsTrue(completionList.Any());
            Assert.IsTrue(completionList.Intersect(new[] { "Hashtable", "Queue", "Stack" }).Count() == 3);
            // Serial tests load an extra type (System.Collections.Immutable) in the Python engine
            Assert.IsTrue(completionData.Length >= 29 && completionData.Length <= 30);
        }
コード例 #5
0
        public void SharedCoreCanFindFirstLoadedIfNotMatch()
        {
            var provider = new SharedCompletionProvider(PythonNodeModels.PythonEngineVersion.CPython3, "");

            Assert.IsNotNull(provider);
        }
コード例 #6
0
        public void SharedCoreCanFindLoadedProviders()
        {
            var provider = new SharedCompletionProvider(PythonNodeModels.PythonEngineVersion.IronPython2, "");

            Assert.IsNotNull(provider);
        }
コード例 #7
0
        public void SharedCoreCanFindLoadedProviders()
        {
            var provider = new SharedCompletionProvider(PythonEngineManager.CPython3EngineName, "");

            Assert.IsNotNull(provider);
        }