@Override
 public void applyFix(@NotNull Project project, @NotNull ProblemDescriptor descriptor) {
   PsiFile psiFile = descriptor.getPsiElement().getContainingFile();
   VirtualFile virtualFile = psiFile.getVirtualFile();
   ChooseFileEncodingAction action =
       new ChooseFileEncodingAction(virtualFile) {
         @Override
         protected void chosen(VirtualFile virtualFile, Charset charset) {
           if (virtualFile != null) {
             EncodingManager.getInstance().setEncoding(virtualFile, charset);
           }
         }
       };
   DefaultActionGroup group = action.createGroup(false);
   DataContext dataContext = DataManager.getInstance().getDataContext();
   JBPopupFactory.getInstance()
       .createActionGroupPopup(null, group, dataContext, false, false, false, null, 30, null)
       .showInBestPositionFor(dataContext);
 }