Page MenuHomePhabricator

Tokenize external editor links so they can be safely materialized on the client
ClosedPublic

Authored by epriestley on Apr 18 2020, 9:31 PM.
Tags
None
Referenced Files
Unknown Object (File)
Thu, Dec 19, 7:02 PM
Unknown Object (File)
Mon, Dec 16, 4:52 AM
Unknown Object (File)
Mon, Dec 16, 4:51 AM
Unknown Object (File)
Mon, Dec 16, 4:51 AM
Unknown Object (File)
Sat, Dec 14, 11:48 PM
Unknown Object (File)
Sat, Dec 14, 12:33 AM
Unknown Object (File)
Fri, Dec 13, 10:56 AM
Unknown Object (File)
Thu, Dec 12, 6:15 AM
Subscribers
None

Details

Summary

Ref T13515. Currently, opening a file to a particular line in an external editor relies on replacing "%l" with "%l" (which is escaped as "%25l") on the server, and then replacing "%25l" with the line number on the client. This will fail if the file path (or any other variable) contains "%l" in its unencoded form.

The parser also can't identify invalid variables.

Pull the parser out, formalize it, and make it generate an intermediate representation which can be sent to the client and reconstituted.

(This temporarily breaks Diffusion and permanently removes the weird, ancient integration in Dark Console.)

Test Plan
  • Added a bunch of tests for the actual parser.
  • Used "Open in Editor" in Differential.

Diff Detail

Repository
rP Phabricator
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

This revision was not accepted when it landed; it landed in state Needs Review.Apr 19 2020, 4:02 PM
This revision was automatically updated to reflect the committed changes.