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
F13246052: D21143.id50340.diff
Thu, May 23, 7:20 AM
F13215495: D21143.id50353.diff
Fri, May 17, 5:46 PM
F13209717: D21143.id.diff
Fri, May 17, 1:47 AM
F13202479: D21143.diff
Tue, May 14, 10:43 PM
F13201567: D21143.diff
Tue, May 14, 1:07 PM
F13197909: D21143.diff
Mon, May 13, 2:18 AM
F13192526: D21143.id50340.diff
Sun, May 12, 8:34 AM
F13191912: D21143.id50353.diff
Sun, May 12, 2:25 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.