Cross-Platform Swiss Army Knife

I found myself working on Objective-C, JavaScript, and C# all at the same time today. One issue I ran into was our C# model classes used camel case property names, but the JSON from the Node server used underscores.

I wrote a dictionary to map the fields by using Vim to convert all the underscore field names into something C#-friendly. This is what I ended up with:

private static readonly Dictionary<string, string> FieldMap = new Dictionary<string, string>
{
    {"ExampleFieldOne", "example_field_one"},
    {"ExampleFieldTwo", "example_field_two"},

The data on the server originally came from an sqlite database, so I pulled out the column names which used underscores, and then put them in a text file.

example_field_one
example_field_two

Then I opened this in Vim and converted the entire file with :%s#_\(\l\)#\u\1#g. I found this on the Vim Wiki: Converting variables to or from camel case.

By using some blockwise Visual mode techiques, I manged to get my C# dictionary and actually got my data converted from the server mapped to my model objects.

When I'm doing cross platform development I often find Vim becomes my swiss army knife for text manipulation. Admittedly I often end up searching for regex help, but the results can save a lot of time!

blog comments powered by Disqus