public CodeCompletionSettings GetCompletion(string source, int position) { var eventargs = new CodeAssistanceConfigurationEventArgs(); if (CodeAssistanceConfigurationRequested != null) { CodeAssistanceConfigurationRequested(this, eventargs); return GetCodeCompletionSettingsForPosition(source, position, eventargs.Configuration); } return null; }
private void CodeAssistanceConfigurationRequested(object sender, CodeAssistanceConfigurationEventArgs e) { var compilerSettings = GetCompilerSettings(); var direct3D = _codeAssistance.Versions.SingleOrDefault(v => v.Version == compilerSettings.Direct3D); if (direct3D == null) throw new Exception(string.Format("No code assistance found for Direct3D version {0}", compilerSettings.Direct3D)); var profile = direct3D.CompileProfiles.SingleOrDefault(p => p.Name == compilerSettings.Profile); if (profile == null) throw new Exception(string.Format("No code assistance found for Direct3D version {0}, Profile {1}", compilerSettings.Direct3D, compilerSettings.Profile)); e.Configuration = _codeAssistance.CodeAssistanceConfigurations.SingleOrDefault( c => c.Name == profile.CodeAssistanceConfiguration); if (e.Configuration == null) throw new Exception(string.Format( "Code assistance configuration with name \"{0}\" referred by Direct3D version {1}, Profile {2}, does not exist.", profile.CodeAssistanceConfiguration, direct3D.Version, profile.Name)); }