fpcodcmp.pas 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. unit FPCodCmp; { CodeComplete }
  2. interface
  3. uses Objects,
  4. WUtils;
  5. const CodeCompleteWords : PTextCollection = nil;
  6. function FPCompleteCodeWord(const WordS: string; var Text: string): boolean;
  7. procedure InitCodeComplete;
  8. procedure DoneCodeComplete;
  9. implementation
  10. uses WEditor,
  11. FPViews;
  12. function FPCompleteCodeWord(const WordS: string; var Text: string): boolean;
  13. var OK: boolean;
  14. Index: sw_integer;
  15. begin
  16. OK:=Assigned(CodeCompleteWords);
  17. if OK then
  18. begin
  19. Text:=CodeCompleteWords^.Lookup(WordS,Index);
  20. OK:=(Index<>-1);
  21. end;
  22. if OK=false then Text:='';
  23. FPCompleteCodeWord:=OK;
  24. end;
  25. procedure InitCodeComplete;
  26. var I:integer;
  27. S: string;
  28. begin
  29. if Assigned(CodeCompleteWords) then Exit;
  30. New(CodeCompleteWords, Init(10,10));
  31. for I:=0 to GetReservedWordCount-1 do
  32. begin
  33. S:=LowCaseStr(GetReservedWord(I));
  34. if length(S)>=CodeCompleteMinLen then
  35. CodeCompleteWords^.Insert(NewStr(S));
  36. end;
  37. {
  38. there should be also a user front-end for customizing CodeComplete !
  39. any volunteers to implement? ;) - Gabor
  40. }
  41. end;
  42. procedure DoneCodeComplete;
  43. begin
  44. if Assigned(CodeCompleteWords) then Dispose(CodeCompleteWords, Done);
  45. CodeCompleteWords:=nil;
  46. end;
  47. END.