anchor.diff:      function IsKeyboardFileByContent(f: TPackageContentFile): Boolean;
       function CheckKeyboardLanguages: Boolean;
       function CheckKeyboardTargetVersions: Boolean;
  +    function IsModelFileByName(f: TPackageContentFile): Boolean;
     public
       type TPackageKeyboardInfo = record
         Name, ID, Version: string;
  
positive.code:   end;
  end;
  
  function TPackageInfoRefreshKeyboards.IsKeyboardFileByName(f: TPackageContentFile): TKMFileType;
  begin
    if f.FileType = ftKeymanFile then
  
negative.code:   end;
  
    if f.FileType <> ftJavascript then
      Exit(ftOther);
  
    // A lexical model file will typicaly have the extension .model.js. This prevents the
    // package editor from treating a lexical model as a keyboard when refreshing the list
    // of included keyboards
    if IsModelFileByName(f) then
      Exit(ftOther);
  
    // Need to test if the JS is a valid keyboard file.
  