public CXCodeCompleteResults *CodeCompleteAt(string completeFilename, uint completeLine, uint completeColumn, ReadOnlySpan <CXUnsavedFile> unsavedFiles, CXCodeComplete_Flags options) { using var marshaledCompleteFilename = new MarshaledString(completeFilename); fixed(CXUnsavedFile *pUnsavedFiles = unsavedFiles) { return(clang.codeCompleteAt(this, marshaledCompleteFilename, completeLine, completeColumn, pUnsavedFiles, (uint)unsavedFiles.Length, (uint)options)); } }
/// <summary> /// The CodeCompleteAt /// </summary> /// <param name="completeFileName">The completeFileName<see cref="string"/></param> /// <param name="completeline">The completeline<see cref="uint"/></param> /// <param name="completeColumn">The completeColumn<see cref="uint"/></param> /// <param name="unsavedFiles">The unsavedFiles<see cref="UnsavedFile[]"/></param> /// <param name="flags">The flags<see cref="CXCodeComplete_Flags"/></param> /// <returns>The <see cref="CodeCompleteResults"/></returns> public unsafe CodeCompleteResults CodeCompleteAt(string completeFileName, uint completeline, uint completeColumn, UnsavedFile[] unsavedFiles, CXCodeComplete_Flags flags) { if (completeFileName == null) { throw new ArgumentNullException("completeFileName"); } if (unsavedFiles == null) { unsavedFiles = new UnsavedFile[0]; } CXCodeCompleteResults *pCodeComplete = clang.clang_codeCompleteAt(this.m_value, completeFileName, completeline, completeColumn, unsavedFiles.Select(x => (CXUnsavedFile)x.Value).ToArray(), (uint)unsavedFiles.Length, (uint)flags); return(new CodeCompleteResults(pCodeComplete)); }