Fix uses unit completions for Intstalled version of PABC (#3390)

This commit is contained in:
Александр Земляк 2026-02-16 14:09:11 +03:00 committed by GitHub
parent fab7af53f2
commit d4e56ead6c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 14 additions and 2 deletions

View file

@ -296,11 +296,17 @@ namespace CodeCompletion
if (CodeCompletionController.comp != null) if (CodeCompletionController.comp != null)
Dirs.AddRange(CodeCompletionController.comp.GetCurrentSearchDirectories(currentUnitLanguage)); Dirs.AddRange(CodeCompletionController.comp.GetCurrentSearchDirectories(currentUnitLanguage));
// Надо как-то проверять, что мы не в инсталированной версии EVA // Надо как-то проверять, что мы не в инсталированной версии EVA
if (CodeCompletionController.StandartDirectories.ContainsKey(LibSourceDirectoryIdent) && Directory.Exists(CodeCompletionController.StandartDirectories[LibSourceDirectoryIdent])) if (MainLibSourceDirectoryExists())
Dirs.AddRange(GetLibSourceDirectories(currentUnitLanguage)); Dirs.AddRange(GetLibSourceDirectories(currentUnitLanguage));
return CodeCompletionController.comp.FindSourceFileNameInDirs(unit_name, out found_dir_ind, currentUnitLanguage, Dirs.ToArray()); return CodeCompletionController.comp.FindSourceFileNameInDirs(unit_name, out found_dir_ind, currentUnitLanguage, Dirs.ToArray());
} }
public static bool MainLibSourceDirectoryExists()
{
return CodeCompletionController.StandartDirectories.ContainsKey(LibSourceDirectoryIdent)
&& Directory.Exists(CodeCompletionController.StandartDirectories[LibSourceDirectoryIdent]);
}
private static string[] GetLibSourceDirectories(ILanguage currentUnitLanguage) private static string[] GetLibSourceDirectories(ILanguage currentUnitLanguage)
{ {
return LanguageProvider.Instance.Languages return LanguageProvider.Instance.Languages

View file

@ -51,7 +51,13 @@ namespace CodeCompletion
{ {
if (CodeCompletionController.comp == null) if (CodeCompletionController.comp == null)
return; return;
string[] files = Directory.GetFiles(Path.Combine(CodeCompletionController.comp.CompilerOptions.SystemDirectory, "Lib"), "*.pas");
var dirName = "Lib";
if (CodeCompletionNameHelper.MainLibSourceDirectoryExists())
dirName = "LibSource";
string[] files = Directory.GetFiles(Path.Combine(CodeCompletionController.comp.CompilerOptions.SystemDirectory, dirName), $"*{StringConstants.pascalSourceFileExtension}");
standard_units = new SymInfo[files.Length]; standard_units = new SymInfo[files.Length];
int i = 0; int i = 0;
foreach (string s in files) foreach (string s in files)