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
F15372300: D21143.id50340.diff
Wed, Mar 12, 1:28 PM
F15369940: D21143.diff
Wed, Mar 12, 8:48 AM
F15315789: D21143.id50340.diff
Thu, Mar 6, 6:10 PM
F15315787: D21143.id.diff
Thu, Mar 6, 6:10 PM
F15315785: D21143.diff
Thu, Mar 6, 6:10 PM
Unknown Object (File)
Tue, Feb 25, 9:17 PM
Unknown Object (File)
Mon, Feb 24, 4:17 PM
Unknown Object (File)
Feb 20 2025, 1:37 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.