Exemplo n.º 1
0
        public ConsoleColoredString Validate()
        {
            if (Filename != null && !File.Exists(Filename))
            {
                return("The specified file does not exist.");
            }

            if (Language != null)
            {
                LanguagePreselect = Mainform.Languages.FirstOrDefault(pl => pl.LanguageName.Equals(Language, StringComparison.InvariantCultureIgnoreCase));
                if (LanguagePreselect == null)
                {
                    return("The specified programming language does not exist. Currently support programming languages are: " + Mainform.Languages.Select(pl => pl.LanguageName).JoinString(", "));
                }
            }

            return(null);
        }
Exemplo n.º 2
0
        private void init()
        {
            ctMenu.Renderer = new NativeToolStripRenderer();
            if (EsotericIDEProgram.Settings.SourceFont != null)
                txtSource.Font = EsotericIDEProgram.Settings.SourceFont.Font;
            if (EsotericIDEProgram.Settings.OutputFont != null)
                txtOutput.Font = EsotericIDEProgram.Settings.OutputFont.Font;

            miWordwrap.Checked = txtSource.WordWrap = EsotericIDEProgram.Settings.WordWrap;

            tabWatch.Controls.Add(notRunningLabel);

            updateUi();
            _splitterDistanceBugWorkaround = false;
            Activated += (_, __) =>
            {
                if (_splitterDistanceBugWorkaround)
                    return;
                _splitterDistanceBugWorkaround = true;
                if (EsotericIDEProgram.Settings.SplitterPercent != 0)
                    ctSplit.SplitterDistance = (int) (ctSplit.Height * EsotericIDEProgram.Settings.SplitterPercent);
            };

            _languages = Assembly.GetExecutingAssembly().GetTypes()
                .Where(t => typeof(ProgrammingLanguage).IsAssignableFrom(t) && !t.IsAbstract)
                .Select(t => (ProgrammingLanguage) Activator.CreateInstance(t))
                .OrderBy(t => t.LanguageName)
                .ToArray();
            LanguageSettings settings;
            foreach (var lang in _languages)
                if (EsotericIDEProgram.Settings.LanguageSettings.TryGetValue(lang.LanguageName, out settings) && settings != null)
                    lang.Settings = settings;
            cmbLanguage.Items.AddRange(_languages);

            ToolStripMenuItem[] currentLanguageSpecificMenus = null;
            cmbLanguage.SelectedIndexChanged += (_, __) =>
            {
                if (_currentLanguage != null)
                    EsotericIDEProgram.Settings.LanguageSettings[_currentLanguage.LanguageName] = _currentLanguage.Settings;
                _currentLanguage = (ProgrammingLanguage) cmbLanguage.SelectedItem;
                EsotericIDEProgram.Settings.LastLanguageName = _currentLanguage.LanguageName;
                if (currentLanguageSpecificMenus != null)
                    foreach (var menuItem in currentLanguageSpecificMenus)
                        ctMenu.Items.Remove(menuItem);
                currentLanguageSpecificMenus = _currentLanguage.CreateMenus(this);
                ctMenu.Items.AddRange(currentLanguageSpecificMenus);
            };
            var ll = _languages.IndexOf(lang => lang.LanguageName == EsotericIDEProgram.Settings.LastLanguageName);
            cmbLanguage.SelectedIndex = ll == -1 ? 0 : ll;
        }