internal static string Getkeyword(string moniker, out MonikerHelper.MonikerAttribute keyword) { moniker = moniker.TrimStart(); int indexOfEqualSign = moniker.IndexOf("=", StringComparison.Ordinal); if (indexOfEqualSign == -1) throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new MonikerSyntaxException(SR.GetString(SR.NoEqualSignFound, moniker))); int indexOfComma = moniker.IndexOf(",", StringComparison.Ordinal); if (indexOfComma != -1 && indexOfComma < indexOfEqualSign) throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new MonikerSyntaxException(SR.GetString(SR.NoEqualSignFound, moniker))); string suspectedKeyword = moniker.Substring(0, indexOfEqualSign).Trim(); suspectedKeyword = suspectedKeyword.ToLower(System.Globalization.CultureInfo.InvariantCulture); foreach (MonikerHelper.KeywordInfo keywordInfo in MonikerHelper.KeywordInfo.KeywordCollection) { if (suspectedKeyword == keywordInfo.Name) { keyword = keywordInfo.Attrib; moniker = moniker.Substring(indexOfEqualSign + 1).TrimStart(); return moniker; } } throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new MonikerSyntaxException(SR.GetString(SR.UnknownMonikerKeyword, suspectedKeyword))); }
internal static string Getkeyword(string moniker, out MonikerHelper.MonikerAttribute keyword) { moniker = moniker.TrimStart(new char[0]); int index = moniker.IndexOf("=", StringComparison.Ordinal); if (index == -1) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new MonikerSyntaxException(System.ServiceModel.SR.GetString("NoEqualSignFound", new object[] { moniker }))); } int num2 = moniker.IndexOf(",", StringComparison.Ordinal); if ((num2 != -1) && (num2 < index)) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new MonikerSyntaxException(System.ServiceModel.SR.GetString("NoEqualSignFound", new object[] { moniker }))); } string str = moniker.Substring(0, index).Trim().ToLower(CultureInfo.InvariantCulture); foreach (MonikerHelper.KeywordInfo info in MonikerHelper.KeywordInfo.KeywordCollection) { if (str == info.Name) { keyword = info.Attrib; moniker = moniker.Substring(index + 1).TrimStart(new char[0]); return moniker; } } throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new MonikerSyntaxException(System.ServiceModel.SR.GetString("UnknownMonikerKeyword", new object[] { str }))); }
void ICompletionSource.AugmentCompletionSession(ICompletionSession session, IList <CompletionSet> completionSets) { if (!PositionHelper.IsStringLiteral(session, _mTextBuffer)) { return; } if (!(Microsoft.VisualStudio.Shell.ServiceProvider.GlobalProvider.GetService(typeof(DTE)) is DTE dte)) { return; } var metadata = (List <Completion>)SharedGlobals.GetGlobal("CrmMetadata", dte); if (metadata == null) { if (CrmMetadata.Metadata == null) { return; } var strList = CrmMetadata.Metadata; metadata = new List <Completion>(); foreach (var completionValue in strList) { metadata.Add(new Completion(completionValue.Name, completionValue.Replacement, completionValue.Description, MonikerHelper.GetImage(completionValue.MetadataType), null)); } SharedGlobals.SetGlobal("CrmMetadata", metadata, dte); } completionSets.Add(new CompletionSet( "CRM", "CRM", FindTokenSpanAtPosition(session.GetTriggerPoint(_mTextBuffer), session), metadata, null) ); }
internal KeywordInfo(string name, MonikerHelper.MonikerAttribute attrib) { this.Name = name; this.Attrib = attrib; }