//package com.scss;
//
//import com.intellij.openapi.diagnostic.Logger;
//import com.intellij.openapi.util.io.FileUtil;
//import com.intellij.openapi.vfs.VirtualFile;
//import com.wix.utils.FileUtils;
//import org.jetbrains.annotations.NotNull;
//import org.jetbrains.annotations.Nullable;
//
//import java.io.File;
//import java.io.IOException;
//
///**
// * Lint target file thread local storage
// */
//class ThreadLocalActualFile extends ThreadLocal<String> {
// private final String baseName;
// private final String extension;
// private final VirtualFile file;
// private static final Logger LOG = Logger.getInstance(ScssLintBundle.LOG_ID);
//
// public boolean isTemp;
//
// private static final String SCSS_LINT_TMP = "_scsslint_tmp";
// private static final String TEMP_DIR_NAME = "intellij-scsslint-temp";
//
// ThreadLocalActualFile(@NotNull VirtualFile file) {
// this.baseName = file.getNameWithoutExtension();
// this.extension = FileUtils.getExtensionWithDot(file);
// this.file = file;
// }
//
// @Nullable
// public File getOrCreateFile() {
// String path = super.get();
// if (path != null) {
// File file = new File(path);
// if (file.isFile()) {
// return file;
// }
// }
// File file = createFile();
// if (file != null) {
// set(file.getAbsolutePath());
// return file;
// }
// return null;
// }
//
// @Nullable
// public static File getOrCreateTempDir() {
// File tmpDir = new File(FileUtil.getTempDirectory());
// File dir = new File(tmpDir, TEMP_DIR_NAME);
// if (dir.isDirectory() || dir.mkdirs()) {
// return dir;
// }
// try {
// return FileUtil.createTempDirectory(tmpDir, TEMP_DIR_NAME, null);
// } catch (IOException ignored) {
// LOG.warn("Can't create '" + TEMP_DIR_NAME + "' temporary directory.");
// }
// return null;
// }
//
// @Nullable
// private File createFile() {
//// File retFile = new File(file.getParent().getPath(), file.getNameWithoutExtension() + "_eslint_tmp." + file.getExtension());
// File retFile;
// try {
// // try to create a temp file next to original file
// retFile = File.createTempFile(this.baseName + SCSS_LINT_TMP, this.extension, new File(file.getParent().getPath()));
// isTemp = true;
// return retFile;
// } catch (IOException e) {
// LOG.warn("Can not create temp file", e);
// }
//
// // try to create a temp file in temp folder
// File dir = getOrCreateTempDir();
// if (dir == null) {
// return null;
// }
// File file = new File(dir, this.baseName + this.extension);
// boolean created = false;
// if (!file.exists()) {
// try {
// created = file.createNewFile();
// } catch (IOException ignored) {
// LOG.warn("Can not create " + file.getAbsolutePath());
// }
// }
// if (!created) {
// try {
// file = FileUtil.createTempFile(dir, this.baseName, this.extension);
// } catch (IOException e) {
// LOG.warn("Can not create temp file", e);
// return null;
// }
// }
// file.deleteOnExit();
// return file;
// }
//}