Копировать и вставить строку (персидский, арабский) в PHPStorm неправильно

Возможно, я слишком поздно для этого, но решение, которое сработало для меня и считалось довольно простым, - это использовать #file компилятор. Вот пример, когда у меня есть класс FixtureManager, определенный в FixtureManager.swift внутри теста / Tests / MyProjectTests / Fixtures directory. This works both in Xcode and with swift test`

import Foundation

final class FixtureManager {

    static let fixturesDirectory = URL(fileURLWithPath: #file).deletingLastPathComponent()

    func loadFixture(in fixturePath: String) throws -> Data {
        return try Data(contentsOf: fixtureUrl(for: fixturePath))
    }

    func fixtureUrl(for fixturePath: String) -> URL {
        return FixtureManager.fixturesDirectory.appendingPathComponent(fixturePath)
    }

    func save<T: Encodable>(object: T, in fixturePath: String) throws {
        let data = try JSONEncoder().encode(object)
        try data.write(to: fixtureUrl(for: fixturePath))
    }

    func loadFixture<T: Decodable>(in fixturePath: String, as decodableType: T.Type) throws -> T {
        let data = try loadFixture(in: fixturePath)
        return try JSONDecoder().decode(decodableType, from: data)
    }

}
15
задан Warren Sergent 3 February 2016 в 21:30
поделиться