This is one of those hot topics with no right answer. It just really depends on your setup and your personal preferences. Some people prefer it all out in the run, some - all in the coop, others - some middle ground.
I keep my water outside because I use an open waterer and don't want the chickens inadvertently stepping in it or spilling it in the coop. The coop should be dry at all times. The waterer is heated and doesn't freeze in winter. As for food, my main feeder is inside the coop, so I can make sure it stays dry. My run is mostly covered on top, but we get crazy winds that blow rain horizontally, so no part of the run is 100% moisture-proof. I also think keeping feed in the run encourages rodents more than keeping it in the coop. It's just more visible and more easily accessible in the run than in the coop, especially if you close your coop at night. Coops tend to be more secure than runs. Once they are drawn to it outside, they'll follow it in if you put it in the coop. I also want to avoid wild birds stealing feed from the run and bringing disease. My overhead netting can't be too small or else it will hold snow, so the spacing is big enough for sparrows to get in. They won't go inside the coop though.
I do have a small secondary feeder out in the run, for treats and things they'll eat right away, so food won't linger out in the run.