コード例 #1
0
        private void RemoveErrors(TextDocument document)
        {
            List <Error> errors;

            if (_errorLists.TryGetValue(document, out errors))
            {
                document.ErrorMarkers.Clear();

                foreach (var error in errors)
                {
                    _errorService?.Errors.Remove(error);
                }

                _errorLists.Remove(document);
            }
        }
コード例 #2
0
        private void AddErrors(TextDocument document, List <Error> newErrors, bool success)
        {
            if (success && (newErrors == null || newErrors.Count == 0))
            {
                return;
            }

            List <Error> errors;

            if (!_errorLists.TryGetValue(document, out errors))
            {
                errors = new List <Error>();
                _errorLists.Add(document, errors);
            }

            bool foundErrorMessage = false;

            foreach (var error in newErrors)
            {
                _errorService?.Errors.Add(error);
                errors.Add(error);
                MarkError(error);

                if (error.ErrorType == ErrorType.Error)
                {
                    foundErrorMessage = true;
                }
            }

            // If we did not find a useful error message we write a generic one.
            if (!success && !foundErrorMessage)
            {
                var error = new Error(
                    ErrorType.Error,
                    "Could not build effect. See Output window for more information.",
                    DocumentHelper.GetName(document));
                _errorService?.Errors.Add(error);
                errors.Add(error);
            }

            _errorLists[document] = errors;
            _errorService?.Show();
        }