コード例 #1
0
        private void IndentGuideGeneralOptionUpdated(GeneralOptionProvider sender)
        {
            // ReSharper disable CompareOfFloatsByEqualityOperator
            if (sender.IsEnabledIndentGuides == _isEnabled && sender.IndentGuideThickness == _thickness &&
                sender.IndentGuideDashSize == _dashSize && sender.IndentGuideSpaceSize == _spaceSize &&
                sender.IndentGuideOffsetX == _offsetX && sender.IndentGuideOffsetY == _offsetY)
            {
                return;
            }
            // ReSharper restore CompareOfFloatsByEqualityOperator

            _isEnabled = sender.IsEnabledIndentGuides;
            _thickness = sender.IndentGuideThickness;
            _dashSize  = sender.IndentGuideDashSize;
            _spaceSize = sender.IndentGuideSpaceSize;
            _offsetX   = sender.IndentGuideOffsetX;
            _offsetY   = sender.IndentGuideOffsetY;

            _currentResult = _documentAnalysis.CurrentResult;
            if (_isEnabled)
            {
                UpdateIndentGuides();
            }
            else
            {
                ClearIndentGuides();
            }
        }
コード例 #2
0
 public ScopedCompletionProvider(GeneralOptionProvider generalOptionProvider, INavigationTokenService navigationTokenService)
     : base(generalOptionProvider)
 {
     _navigationTokenService = navigationTokenService;
     _autocompleteLabels     = generalOptionProvider.AutocompleteLabels;
     _autocompleteVariables  = generalOptionProvider.AutocompleteVariables;
 }
コード例 #3
0
 private void OptionsUpdated(GeneralOptionProvider sender)
 {
     if (sender.SortOptions != SortState)
     {
         SortState = sender.SortOptions;
         SortAndReloadFunctionList();
     }
     Autoscroll = sender.AutoScroll;
 }
コード例 #4
0
        public InstructionCompletionProvider(GeneralOptionProvider generalOptionProvider, IInstructionListManager instructionListManager)
            : base(generalOptionProvider)
        {
            _autocomplete = generalOptionProvider.AutocompleteInstructions;
            _asm1InstructionCompletions = new List <InstructionCompletionItem>();
            _asm2InstructionCompletions = new List <InstructionCompletionItem>();

            instructionListManager.InstructionsUpdated += InstructionsUpdated;
            InstructionsUpdated(instructionListManager, AsmType.RadAsmCode);
        }
コード例 #5
0
        private void OptionsUpdated(GeneralOptionProvider provider)
        {
            var sb = new StringBuilder();
            var newInstructionPaths = new HashSet <string>(StringComparer.OrdinalIgnoreCase);

            foreach (var directory in provider.InstructionsPaths)
            {
                try
                {
                    foreach (var path in Directory.EnumerateFiles(directory, $"*{Constants.FileExtensionAsm1Doc}")
                             .Concat(Directory.EnumerateFiles(directory, $"*{Constants.FileExtensionAsm2Doc}")))
                    {
                        newInstructionPaths.Add(path);
                    }
                }
                catch (Exception e) when(
                    e is DirectoryNotFoundException ||
                    e is PathTooLongException ||
                    e is SecurityException ||
                    e is IOException ||
                    e is UnauthorizedAccessException)
                {
                    sb.AppendLine(e.Message);
                }
            }

            if (sb.Length != 0)
            {
                Error.ShowErrorMessage(sb.ToString(), "Instruction loader");
            }

            lock (_lock)
            {
                var invalidatedPaths = newInstructionPaths.ToHashSet();
                invalidatedPaths.SymmetricExceptWith(_instructionSetPaths.Keys);

                // skip if options haven't changed
                if (invalidatedPaths.Count == 0)
                {
                    return;
                }

                invalidatedPaths.ExceptWith(newInstructionPaths);
                CleanInstructionSets(invalidatedPaths);

                // now _instructionSetPaths contains only elements which is both in new sets and old sets
                newInstructionPaths.ExceptWith(_instructionSetPaths.Keys);
            }

            _ = Task.Run(() => LoadInstructionsFromDirectoriesAsync(newInstructionPaths));
        }
コード例 #6
0
        public FunctionListControl(GeneralOptionProvider generalOptionProvider, OleMenuCommandService service)
        {
            items           = new List <FunctionListItem>();
            hideLineNumber  = false;
            searchText      = string.Empty;
            SortState       = generalOptionProvider.SortOptions;
            Autoscroll      = generalOptionProvider.AutoScroll;
            _commandService = service;

            InitializeComponent();
            tokens.LayoutUpdated += (s, e) => SetLineNumberColumnWidth();
            generalOptionProvider.OptionsUpdated += OptionsUpdated;
            typeFilter.Content = TypeFilterState.ToString();
        }
コード例 #7
0
        public IndentGuide(IWpfTextView textView, IDocumentAnalysis documentAnalysis, GeneralOptionProvider generalOptionProvider)
        {
            _textView         = textView ?? throw new NullReferenceException();
            _generalOption    = generalOptionProvider ?? throw new NullReferenceException();
            _documentAnalysis = documentAnalysis ?? throw new NullReferenceException();

            _currentAdornments = new List <Line>();
            _canvas            = new Canvas
            {
                HorizontalAlignment = HorizontalAlignment.Stretch,
                VerticalAlignment   = VerticalAlignment.Stretch
            };

            _layer = _textView.GetAdornmentLayer(Constants.IndentGuideAdornmentLayerName) ?? throw new NullReferenceException();
            _layer.AddAdornment(AdornmentPositioningBehavior.OwnerControlled, null, null, _canvas, CanvasRemoved);
            _textView.LayoutChanged += LayoutChanged;

            _documentAnalysis.AnalysisUpdated += AnalysisUpdated;
            _generalOption.OptionsUpdated     += IndentGuideGeneralOptionUpdated;
            _textView.Options.OptionChanged   += TabSizeOptionsChanged;

            _tabSize = textView.Options.GetOptionValue(DefaultOptions.TabSizeOptionId);
            IndentGuideGeneralOptionUpdated(_generalOption);
        }
コード例 #8
0
 public override void DisplayOptionsUpdated(GeneralOptionProvider sender)
 {
     _autocompleteLabels    = sender.AutocompleteLabels;
     _autocompleteVariables = sender.AutocompleteVariables;
 }
コード例 #9
0
 public IndentGuideFactory(IDocumentFactory documentFactory)
 {
     _documentFactory                   = documentFactory;
     _generalOptionProvider             = GeneralOptionProvider.Instance;
     _documentFactory.DocumentDisposed += DisposeRequest;
 }
コード例 #10
0
 private static void OptionsUpdated(GeneralOptionProvider sender)
 {
     SignatureConfig.Asm1Instance.Enabled = sender.SignatureHelp;
     SignatureConfig.Asm2Instance.Enabled = sender.SignatureHelp;
 }
コード例 #11
0
 public abstract void DisplayOptionsUpdated(GeneralOptionProvider sender);
コード例 #12
0
 public RadCompletionProvider(GeneralOptionProvider generalOptionProvider)
 {
     generalOptionProvider.OptionsUpdated += DisplayOptionsUpdated;
 }
コード例 #13
0
 public override void DisplayOptionsUpdated(GeneralOptionProvider sender) =>
 _autocompleteFunctions = sender.AutocompleteFunctions;
コード例 #14
0
 public FunctionCompletionProvider(GeneralOptionProvider generalOptionProvider, INavigationTokenService navigationTokenService)
     : base(generalOptionProvider)
 {
     _autocompleteFunctions  = generalOptionProvider.AutocompleteFunctions;
     _navigationTokenService = navigationTokenService;
 }