// Path: src/main/java/ru/adelf/idea/dotenv/api/EnvironmentVariablesUsagesProvider.java
// public interface EnvironmentVariablesUsagesProvider {
//     boolean acceptFile(VirtualFile file);
// 
//     @NotNull
//     Collection<KeyUsagePsiElement> getUsages(PsiFile psiFile);
// }
// 
// Path: src/main/java/ru/adelf/idea/dotenv/models/KeyUsagePsiElement.java
// public class KeyUsagePsiElement {
// 
//     private final String key;
//     private final PsiElement element;
// 
//     public KeyUsagePsiElement(String key, PsiElement element) {
//         this.key = key;
//         this.element = element;
//     }
// 
//     public String getKey() {
//         return key;
//     }
// 
//     public PsiElement getElement() {
//         return element;
//     }
// }


import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.PsiFile;
import com.jetbrains.python.PythonFileType;
import com.jetbrains.python.psi.PyFile;
import org.jetbrains.annotations.NotNull;
import ru.adelf.idea.dotenv.api.EnvironmentVariablesUsagesProvider;
import ru.adelf.idea.dotenv.models.KeyUsagePsiElement;
import java.util.Collection;
import java.util.Collections;
package ru.adelf.idea.dotenv.python;



public class PythonEnvironmentVariablesUsagesProvider implements EnvironmentVariablesUsagesProvider {
    @Override
    public boolean acceptFile(VirtualFile file) {
        return file.getFileType().equals(PythonFileType.INSTANCE);
    }

    @NotNull
    @Override
    public Collection<KeyUsagePsiElement> getUsages(PsiFile psiFile) {
        if(psiFile instanceof PyFile) {
            PythonEnvironmentCallsVisitor visitor = new PythonEnvironmentCallsVisitor();
            psiFile.acceptChildren(visitor);

// Path: src/main/java/ru/adelf/idea/dotenv/api/EnvironmentVariablesUsagesProvider.java
// public interface EnvironmentVariablesUsagesProvider {
//     boolean acceptFile(VirtualFile file);
// 
//     @NotNull
//     Collection<KeyUsagePsiElement> getUsages(PsiFile psiFile);
// }
// 
// Path: src/main/java/ru/adelf/idea/dotenv/models/KeyUsagePsiElement.java
// public class KeyUsagePsiElement {
// 
//     private final String key;
//     private final PsiElement element;
// 
//     public KeyUsagePsiElement(String key, PsiElement element) {
//         this.key = key;
//         this.element = element;
//     }
// 
//     public String getKey() {
//         return key;
//     }
// 
//     public PsiElement getElement() {
//         return element;
//     }
// }


// Path: src/main/java/ru/adelf/idea/dotenv/python/PythonEnvironmentVariablesUsagesProvider.java
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.PsiFile;
import com.jetbrains.python.PythonFileType;
import com.jetbrains.python.psi.PyFile;
import org.jetbrains.annotations.NotNull;
import ru.adelf.idea.dotenv.api.EnvironmentVariablesUsagesProvider;
import ru.adelf.idea.dotenv.models.KeyUsagePsiElement;
import java.util.Collection;
import java.util.Collections;

package ru.adelf.idea.dotenv.python;



public class PythonEnvironmentVariablesUsagesProvider implements EnvironmentVariablesUsagesProvider {
    @Override
    public boolean acceptFile(VirtualFile file) {
        return file.getFileType().equals(PythonFileType.INSTANCE);
    }

    @NotNull
    @Override
    public Collection<KeyUsagePsiElement> getUsages(PsiFile psiFile) {
        if(psiFile instanceof PyFile) {
            PythonEnvironmentCallsVisitor visitor = new PythonEnvironmentCallsVisitor();
            psiFile.acceptChildren(visitor);

            return visitor.getCollectedItems();